2008-10-13 3 views
10

<% null.toString(); %>jsp에서 NullPointerException을 throw하기 위해 Spring HandlerExceptionResolver를 구성하는 방법은 무엇입니까? JSP로부터

이 예외는 HandlerExceptionResolver 처리되지 않은 사용 예 NullPointerException이 발생하지만, 웹 컨테이너 (톰캣)에 발생하고 code 500 error로 변환된다.

HandlerExceptionResolver에서 오류를 가져 오기 위해 Spring을 어떻게 구성 할 수 있습니까?

세부 사항 :

  • 봄 컨트롤러 내에서 발생한 예외를 처리하도록 구성 할 수 있지만 예외가보기에 의해 발생합니다.
  • 물론 NullPointerException을 해결할 수 있지만 사용자에게 친숙한 메시지를 표시하기 위해 웹 응용 프로그램에서 발생할 수있는 문제를 정상적으로 해결할 솔루션을 설계하고 싶습니다.

답변

1

나는 스프링 프레임 워크의 특정 비트와 함께 일하지 않은,하지만 워드 프로세서는

"인터페이스가 전형적인 경우, 핸들러 맵핑 또는 실행 중에 발생한 예외를 해결 할 수있는 것보다 객체에 의해 구현 될 수

말 오류보기 개발자는 일반적으로 응용 프로그램 컨텍스트에서 Bean으로 등록됩니다.

오류보기는 오류 페이지 JSP와 유사하지만 검사 된 예외를 비롯하여 모든 종류의 예외와 함께 사용할 수 있으며 특정 예외에 대한 세분화 된 매핑이 가능합니다. 처리기. "

그래서 NullPointer가 RuntimeException을 확장한다고 가정하면 프레임 워크는이를 잡아 내도록 설계되지 않았습니다. 컨트롤러에서 예외를 직접 처리 할 수없는 이유가 있습니까?

+1

@Steve_B 여기서 문제는보기 처리 중에 오류가 발생한다는 것입니다. 컨트롤러가 이미 종료되었습니다. – MetroidFan2002

6

대신 HandlerInterceptor 인터페이스를 참조하십시오. afterCompletion 메서드가 필요할 것이다. 그런 다음 응답을 인터셉트하고 적절한 헤더 정보를 설정하여 컨테이너로 구성된 오류 웹 페이지로 리디렉션 할 수 있습니다. Spring이이 기능을 가지고 있지 않다는 것이 옳은데, 이것은 어떤 코드가 어느 페이지에 매핑되는지를 결정하는 web.xml에 의해 지정되어야 할 것입니다.

관련 문제