[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 블록을 사용하여 예외를 처리합니다.

함수형 인터페이스를 사용하면 예외 처리를 보다 간소화하고 가독성 있는 코드를 작성할 수 있습니다. 그러나 일반적인 예외 처리 방법과는 다르므로 주의가 필요합니다. 코드를 작성할 때 상황에 맞게 적절한 예외 처리 방법을 선택하도록 합니다.

참고 자료: