LambdaConversionException — 람다 변환에 실패했을 때

LambdaConversionException — 람다 변환에 실패했을 때

LambdaConversionException람다 표현식이나 메서드 참조를 함수형 인터페이스로 변환하는 중 잘못된 상태가 감지되었을 때 던져지는 예외예요.

출처: Java API Reference

본문

보통 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) — 완전한 제어를 허용하는 생성자예요.

더 알아보기 (Learn more)