프로그램이 처리되는 동안 특정한 문제가 발생했을 때 처리를 중단하고 다른처리를 하는것으로 오류처리라고도 함.
<% page errorPage = "오류페이지 경로" %>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page errorPage="errorPage_error.jsp"%>
<html>
<head>
<title>Exception</title>
</head>
<body>
name 파라미터 : <%=request.getParameter("name").toUpperCase()%>
</body>
</html>
errorPage_error.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Exception</title>
</head>
<body>
<p>오류가 발생하였습니다.
</body>
</html>
<% page isErrorPage = "true" %>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page isErrorPage="true"%>
<html>
<head>
<title>Exception</title>
</head>
<body>
<p>오류가 발생하였습니다.
<p> 예외 유형 : <%=exception.getClass().getName()%>
<p> 오류 메시지 : <%=exception.getMessage()%>-getMessage():오류이벤트와 함께 들어오는 메시지 출력
//toStrong():간단한 오류메시지를 확인
//printStackTrace():오류메시지의 발생 근원지를 찾아 단계별로 오류출력
</body>
</html>
web.xml을이용해 오류상태와 오류페이지 보여주는 방법
<error-page>
<error-code>500</error-code>-오류 코드를 설정
<location>/ch11/errorCode_error.jsp</location>-오류페이지 경로 설정
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>-자바 예외유형 설정
<location>/ch11/exceptionType_error.jsp</location>
</error-page>
try{
예외가 발생할 수 있는 실행문
}
catch(처리할 예외 유형 설정{
예외 처리문
}
[finally{
외예와 상관없이 무조건 실행되는 문장(생략가능)
}]
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Exception</title>
</head>
<body>
<form action="tryCatch_process.jsp" method="post">
<p> 숫자1 : <input type="text" name="num1">
<p> 숫자2 : <input type="text" name="num2">
<p> <input type="submit" value="전송">
</form>
</body>
</html>
tryCatch_process.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Exception</title>
</head>
<body>
<%
try {
String num1 = request.getParameter("num1");
String num2 = request.getParameter("num2");
int a = Integer.parseInt(num1);
int b = Integer.parseInt(num2);
int c = a / b;
} catch (NumberFormatException e) {//오류발생시 tryCatch_error.jsp을 화면출력
RequestDispatcher dispatcher = request.getRequestDispatcher("tryCatch_error.jsp");
dispatcher.forward(request, response);
}
%>
</body>
</html>
tryCatch_error.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Exception</title>
</head>
<body>
<p>잘못된 데이터가 입력되었습니다.
<p> <%=" 숫자1 : " + request.getParameter("num1")%>
<p> <%=" 숫자2 : " + request.getParameter("num2")%>
</body>
</html>