고급자바_예외

oungoo·2020년 10월 22일
0

JAVA_고급

목록 보기
18/19

예외

  • 예외가 발생하면 톰캣이 Request에 Throwable 객체에 담아 에러페이지에 전달
  • 상위 객체인 Throwable로 처리할수도 있고, 예외타입에 따라 분기할 수도 있음.
에러발생!

// 에러 객체 가져오기
Throwable throwable = (Throwable) req.getAttribute("javax.servlet.error.exception");

// 에러 상태코드 가져오기
Integer statusCode = (Integer)req.getAttribute("javax.servlet.error.status.code");

// 에러 발생한 서블릿 이름 가져오기
String servletName = (String) req.getAttribute("javax.servlet.error.servlet_name");

// 에러 발생 URL 정보 가져오기 
String requestUri =(String) getAttribute("javax.servlet.error.request_uri");

web.xml

예외페이지 설정_servlet

<!-- T04_ErrorHandler -->
<servlet>
	<servlet-name>ErrorHandler</servlet-name>
	<servlet-class>kr.or.ddit.basic.T04_ErrorHandler</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>ErrorHandler</servlet-name>
	<url-pattern>/ErrorHandler</url-pattern>
</servlet-mapping>

<!-- throwable 밑에 왠만한 에러 다 있음..  -->
<error-page>
	<exception-type>java.lang.Throwable</exception-type>
	<location>/ErrorHandler</location>
</error-page>

에러페이지 세팅_jsp

<!-- 	에러페이지 세팅	 -->
<error-page>
	<error-code>404</error-code>
	<location>/error/error404.jsp</location>
</error-page>

<error-page>
	<error-code>500</error-code>
	<location>/error/error500.jsp</location>
</error-page>

참고

  • Throwable
    https://edu.goorm.io/learn/lecture/41/%EB%B0%94%EB%A1%9C%EC%8B%A4%EC%8A%B5-%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-%EC%9E%90%EB%B0%94-java/lesson/39411/%EC%98%88%EC%99%B8%EC%9D%98-%EC%84%A0%EC%A1%B0-throwable

0개의 댓글