RuntimeException의 예외 메시지를 가져오는 getMessage() 메서드 이해하기

• RecipeApplicationException 클래스에서 @AllArgsConstructor 어노테이션을 사용하면, ErrorCode 필드만 초기화되고 상위 클래스인 RuntimeException의 message 필드는 초기화되지 않아 exception.getMessage() 호출 시 null을 반환한다. 이를 해결하기 위해 사용자 정의 생성자에서 super(errorCode.getMessage())를 호출하여 RuntimeException의 message 필드를 명시적으로 초기화함으로써 예외 메시지를 제대로 설정할 수 있다.
• 이러한 수정은 Java의 표준 예외 처리와의 호환성을 높이며, RuntimeException의 message 필드를 통해 예외 발생 시 유용한 정보를 제공하여 오류의 원인을 파악하는 데 도움을 준다.
• `RecipeApplicationException` 클래스는 `RuntimeException`을 상속받아 사용자 정의 예외 클래스로 구현되며, 생성자에서 `super(errorCode.getMessage())`를 호출하여 `RuntimeException`의 `message` 필드를 초기화한다. 이를 통해 예외 객체 생성 시 자동으로 메시지가 설정되고, `.getMessage()` 메서드를 통해 오류 메시지를 직접 얻을 수 있다.
• `RuntimeException`의 `message` 필드는 사실 `Throwable` 클래스의 `detailMessage` 필드와 동일하며, 이 필드는 예외나 오류의 구체적인 설명을 저장하는 데 사용된다. 이러한 구조 덕분에 `RuntimeException` 또는 그 하위 클래스에서 `.getMessage()` 메서드를 호출하면 저장된 예외 메시지를 반환받을 수 있다.

북마크
공유하기
신고하기