예외처리

suyeon lee·2021년 3월 10일
0

JSP

목록 보기
19/24

프로그램이 처리되는 동안 특정한 문제가 발생했을 때 처리를 중단하고 다른처리를 하는것으로 오류처리라고도 함.

  • 예외처리 방법
    page디렉티브 이용 - errorPage와 isErrorPage속성사용
    web-xml 이용 - < error-code> 또는 < exception-type>요소 사용
    try/catch문사용 - 자바언어의 예외처리사용

page디렉티브사용

<% 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사용

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사용

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>

0개의 댓글