LambdaConversionException — 람다 변환에 실패했을 때
LambdaConversionException — 람다 변환에 실패했을 때
LambdaConversionException은 람다 표현식이나 메서드 참조를 함수형 인터페이스로 변환하는 중 잘못된 상태가 감지되었을 때 던져지는 예외예요.
본문
보통 JVM이 람다를 구현하기 위해 LambdaMetafactory를 사용할 때, 캡처된 변수(captured arguments)의 개수·타입이 예상과 다르다거나, 메서드 참조가 가리키는 대상이 잘못된 경우에 이 예외가 나와요. 정상적인 소스 코드에서는 컴파일러가 미리 막아 주므로 거의 마주치지 않지만, 런타임에 invokedynamic 부트스트랩 과정에서 발생할 수 있어요.
상속 구조는 다음과 같아요.
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.invoke.LambdaConversionException
생성자
LambdaConversionException()— 상세 메시지 없이 생성해요.LambdaConversionException(String message)— 지정된 상세 메시지로 생성해요.LambdaConversionException(String message, Throwable cause)— 상세 메시지와 원인을 함께 지정해요.LambdaConversionException(Throwable cause)— 원인만 지정해요.LambdaConversionException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)— 완전한 제어를 허용하는 생성자예요.