[java] 함수형 인터페이스를 사용하여 예외 처리를 간소화하는 방법은 어떻게 되나요?
함수형 인터페이스는 단일 추상 메서드를 가지고 있는 인터페이스로, java.util.function
패키지에 여러 가지 종류가 포함되어 있습니다. 이 중에서 예외를 발생시킬 수 있는 함수형 인터페이스는 Consumer
, Function
, Supplier
등이 있습니다.
예를 들어, Consumer
인터페이스는 인자를 받아서 처리하는 일을 수행합니다. 일반적으로는 accept
메서드를 사용하며, 예외를 발생시킬 수 있습니다. 이 때는 기존의 try-catch
블록을 사용하지 않고, 람다 표현식 내에서 예외 처리를 할 수 있습니다.
다음은 예외를 발생시킬 수 있는 Consumer
를 사용하여 예외 처리를 간소화하는 예제 코드입니다:
import java.util.function.Consumer;
public class ExceptionHandlingExample {
public static void main(String[] args) {
Consumer<String> printLength = s -> {
try {
int length = s.length();
System.out.println(length);
} catch (NullPointerException e) {
System.out.println("문자열이 null입니다.");
}
};
printLength.accept("Hello"); // 출력: 5
printLength.accept(null); // 출력: "문자열이 null입니다."
}
}
위 예제에서 printLength
함수형 인터페이스는 문자열의 길이를 출력하는 역할을 합니다. 문자열이 null
인 경우 예외가 발생하므로, try-catch
블록을 사용하여 예외를 처리합니다.
함수형 인터페이스를 사용하면 예외 처리를 보다 간소화하고 가독성 있는 코드를 작성할 수 있습니다. 그러나 일반적인 예외 처리 방법과는 다르므로 주의가 필요합니다. 코드를 작성할 때 상황에 맞게 적절한 예외 처리 방법을 선택하도록 합니다.
참고 자료: