JSP

오류처리

당근개발자 2021. 5. 2. 22:28

Throwable - Error                                          - NullpointException

                  - Exception - RuntimeException  -

 

 

Throwable ->최상위 객체

 

Error - 물리적인 오류

Exception - 프로그램적인 오류

RuntimeException -> 실행중에 발생하는 오류

IOException -> 외부 데이터와 입출력 작업중 발생하는 오류

try{


}catch(Exception e_{

}

finallly{

}

 

 

throws

-> 재 정의한 메서드는 throws 사용 불가능 , try-catch 사용해야함

 

web.xml 오류처리

어떠한 오류가 발생했을때, 처리할페이지를 web.xml에 지정하면, 오류가 발생했을 때 프로그램이 강제로 종료되지않고,

web.xml 에 설정한 오류 처리 페이지를 실행한다. 

만약 동일한 오류에 대해서 try catch문으로 처리하면 try catch가 우선으로 처리된다.

 

 

<error-page>

        <error-code></error-code>

        <location></location>

</error-page>

 

<error-page>

        <exception-page></exception-page>

        <location></loaction>

</error-page>

 

<error-page> : 웹 애플리케이션에서 발생하는 오류를 처리를 할때 사용, 처리 할 오류와 처리할 페이지가 무엇인지를 값으로 지정한다.

                        처리할 오류는 <error-code>나 <exception-type> 태그에 지정한다. 오류 처리할 페이지는 <location> 태그에 지정한다.

<error-code> : 처리할 오류를 지정하는 태그로서 오류코드로 값을 지정한다.

<exception-type> : 처리할 오류를 지정하는 또 다른 태그로서 오류가 정의된 객체 이름으로 지정한다. 객체이름은 패키지 이름과 함께, 정                                  확하게 입력해야 한다.

<location> : 오류가 발생했을때, 실행할 페이지 경로를 지정한다. 

---------------------------------------------------------------

 

web.xml 파일에 에러 처리를 하였을때, 에러 발생시, <location>에 등록된 오류 페이지를 실행한다. 서버는 오류 처리 페이지로 이동하기 전에 현재 발생한 오류에 대한 정보를  HttpServletRequest 객체에 등록한 다음, 오류 처리 페이지로 이동한다.

오류처리페이지에서 사용하는 HttpServletRequest,HttpServletResponse 객체는 오류가 ㅂ라생한 페이지에서 사용하던 객체를 그대로 전달 받아 사용한다.

HttpServletRequest객체에 있는 오류에 대한 정보는 다음과 같다.

 

* javax.servlet.error.status_code : 발생된 오류의 코드 정보

* javax.servlet.error.exception_type : 발생된 오류 객체의 타입 정보를 가지고 있는 Class형 객체

* javax.servlet.error.exception : 발생된 오류 객체

* javax.servlet.error.request_uri : 오류가 발생된 페이지의 URI 정보

 

오류정보 추출 예시

 

Object code = req.getAttribute("javax.servlet.error.status_code");

Object message = req.getAttribute("javax.servlet.error.message"):

....etc

 

-web.xml-

<error-page>

          <error-code>405</error-code>

          <location>/errorHandle></location>

</error-page>

 

<error-page>

    <exception-type>java.lang.NullPointerException</exception-type>

    <location>/errorHandle</location>

</error-page>