예외 처리

2021. 7. 6. 16:49(구)공부/JSP

728x90

기본 오류 페이지는 많은 정보를 담고 있기 때문에 보안이 취약해 질 수 있음

사용자에게 보여줄 오류 페이지를 따로 만들어 보여주는 처리.

 

- page 디렉티브 태그의 errorPage와 isErrorPage 속성을 이용하는 방법

- web.xml 의 <error-code> 또는 <exception-type> 요소 이용

- try/catch/finally를 이용한 자바에서 처리

 

errorPage속성

<%@ page errorPage = "오류 페이지 URL"%>

현 페이지 실행중 오류 발생시 errorPage 속성에 설정한 페이지를 호출.

 

isErrorPage속성

현재 JSP 페이지를 오류 페이지로 호출하는 page 디렉티브 태그의 속성

이때 오류 페이지에서 exception 내장 객체를 사용할 수 있음

<%@ page isErrorPage= "true"%>

 

exception 내장 객체의 메소드

getMessage() String 오류 이벤트와 함께 오는 메시지 출력

toString() String 오류 이벤트의 toString()을 호출해 간단한 오류 메시지 확인

printStackTrace() String 오류 메시지의 근원을 찾아 단계별 오류 출력

 

web.xml 파일을 이용한 예외 처리

web.xml 파일을 통해 오류 상태와 오류 페이지를 보여주는 방법

<error-page>…</error-page> 요소 내에 처리할 오류 코드나 오류 유형 및
오류 페이지를 호출

 

<error-code> 오류 코드를 설정하는데 사용

<exception-type> 자바 예외 유형의 정규화된 클래스 이름을 설정하는데 이용

<location> 오류 페이지의 url을 설정하는데 사용

web.xml 은 웹 어플리케이션의 /WEB-INF/폴더에 있어야 함.

 

오류 코드와 페이지를 설정하는 형식

<error-page>

   <error-code>오류 코드</error-code>

   <location>오류 페이지의 uri</location>

</error-page>

주요 오류 코드

200 - 요청이 정상처리

307 - 임시로 페이지가 리다이렉트

400 - 클라이언트의 요청이 잘못 된 구문으로 구성

401 - 접근 불허

404 - 페이기 없음

405 - 요청된 메소드 불허

500 - 서버 내부 에러(jsp에서 예외 발생하는 경우)

503 - 서버 과부하나 보수중인 경우

 

예외 유형으로 오류 페이지 호출

 

<error-page>

   <exception-type>예외 유형</exception-type>

   <location>오류 페이지의 uri</location>

</error-page>

 

주요 예외 유형의 종류

ClassNotFoundException - 클래스 못 찾음

NullPointerException - null 오브젝트로 접근시

ClassCastException - 객체를 변환할 때 발생

OutOfMemoryException - 메모리 부족으로 메모리 확보 실패

StackOverflowError - 스택 오버 플로우

ArrayIndexOutOfBoundException - 범위 밖의 배열을 설정했을 때

NegativeArraySizeException - 음수로 배열 크기를 설정했을 때

illegalArgumentException - 부적절한 문자열을 수치로 변경하려고 할때

IOException - 요청된 메소드가 허용되지 않을 때

NumberFormatException - 부적절한 문자열을 숫자로 변경하려고 할때

ArithmeticException - 값을 0으로 나눴을 때

 

 

try-catch 사용 예

try{

  int num = 10/0;

} catch(NumberFormatException e) {

  RequestDispatcher dispatcher = request.getRequestDispatcher("error.jsp");

  dispatcher.forward(request, response);

}

728x90

'(구)공부 > JSP' 카테고리의 다른 글

세션  (0) 2021.07.06
필터  (0) 2021.07.06
시큐리티  (0) 2021.07.06
다국어처리 - 작성 대기  (0) 2021.07.05
유효성 검사 - 작성대기  (0) 2021.07.05