¼Ò¼³°°ÀºJSP1ºÎ  5Àå Core of JSP  13 ³»À尴ü exception  

 

13 ³»À尴ü exception

 

 excetion °´Ã¼´Â java.lang.Throwable Ŭ·¡½º ÇüÀÇ JSP³»À尴ü ÀÔ´Ï´Ù. ÀÌ °´Ã¼´Â À̸§¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ ¿¡·¯ 󸮿¡ °üÇÑ °´Ã¼ÀÔ´Ï´Ù. Áï, ÇØ´ç ÆäÀÌÁö ½ÇÇà ½Ã ¼­ºí¸´ÀÌ Ã³¸®ÇÏÁö ¸øÇÑ ¿¡·¯°¡ ¹ß»ýÇÒ ¶§, ¿¹¿Ü¸¦ ó¸®ÇÒ ÆäÀÌÁö¸¦ ÁöÁ¤ÇÏ¿´À» °æ¿ì, ÁöÁ¤µÈ ÆäÀÌÁö·Î ¿¹¿Ü¸¦ Àü´ÞÇÏ´Â ¿ªÇÒÀ» ÇÏ´Â °´Ã¼ÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÌ·± °æ¿ì ¸ÕÀú ¿¹¿Ü°¡ Àü´ÞµÉ ÆäÀÌÁöÀÇ isErrorPage¶ó´Â ¼Ó¼ºÀ» ¡®true¡¯·Î Á¤ÀÇ ÇØ¾ß¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ¸¸¾à ÀÌ ¼Ó¼ºÀÌ Á¤ÀÇ µÇ¾î ÀÖÁö ¾ÊÀ¸¸é exception °´Ã¼ÀÇ »ç¿ëÀº ºÒ°¡´ÉÇÕ´Ï´Ù. isErrorPageÀÇ ±âº»°ªÀº falseÀ̱⶧¹®¿¡ ´ÙÀ½°ú °°Àº Áö½Ã¹®À¸·Î isErrorPage ¼Ó¼ºÀ» true·Î ¸¸µå¼Å¾ß ÇÕ´Ï´Ù.

 

n        <%@ page isErrorPage=¡°true¡±>

 

 ±×¸®°í ÇöÀç ÆäÀÌÁö¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇÒ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ¿¡·¯¸¦ ó¸®ÇÒ  JSPÆäÀÌÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ·² ¶§ ÁÖÀÇÇÒ Á¡Àº buffer¼Ó¼ºÀ» false·Î ¼³Á¤Çؼ­´Â ¾È µÈ´Ù´Â °ÍÀÔ´Ï´Ù. ¿¹¿Ü Á¤º¸¸¦ °¡Áö°í ³Ñ¾î°¡±â ¶§¹®¿¡ ÀúÀåÇÒ ¹öÆÛ°ø°£ÀÌ ÇÊ¿äÇÑ °ÍÀÔ´Ï´Ù.

 

n        <%@ page errorPage=¡°»ó´ëÀûurl¡± %>

 

 À§ÀÇ ¼³¸íÇÑ °ÍÀ» ¾Æ·¡ÀÇ ¿¹Á¦¿Í ¿¬°üÇÏ¿© ³ªÅ¸³»¸é ¾Æ·¡ÀÇ ±×¸²°ú °°½À´Ï´Ù.

 

 

´ÙÀ½Àº Æû ¾ç½ÄÀ¸·ÎºÎÅÍ °ªÀ» ¹Þ¾Æ¼­ »çÄ¢ ¿¬»êÀ» ÇØ ÁÖ´Â JSPÇÁ·Î±×·¥ÀÔ´Ï´Ù. °è»ê½Ã ¿¡·¯°¡ ¹ß»ýÇÏ¿´À» °æ¿ì ¿¡·¯ÆäÀÌÁö·Î ³Ñ°Ü¼­ ó¸®Çϵµ·Ï ¿¡·¯Ã³¸® ÆäÀÌÁö¸¦ ¸¸µé¾î ÁÖ¾ú½À´Ï´Ù.

calcul.jsp

»çÄ¢¿¬»êÀ» ÇÏ¿© °á°ú¸¦ º¸¿©Áִ  JSP

<%@ page contentType="text/html; charset=euc-kr" %> 

<!--<%@ page errorPage = "calculerr.jsp" %> -->

<% 

String first = request.getParameter("first");

String last = request.getParameter("last");

String oper = request.getParameter("oper");

if (first == null || last == null){

%>

<HTML><BODY>

<h2>Calculator</h2>

<h3>¼ýÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä</h3>

<form action = "calcul.jsp" method = "post">

<input name = "first" size = "10">

<input type=radio name="oper" value="plus" checked>+

<input type=radio name="oper" value="minus">-

<input type=radio name="oper" value="multi">*

<input type=radio name="oper" value="divide">/

<input name = "last" size = "10">

<input type="submit" value="°è»ê">

</form>

</BODY></HTML>   

 <%

} else {

  int first1 = Integer.parseInt(first);

  int last1 = Integer.parseInt(last);

  String operator = null;

  int result = 0;

  if (oper.equals("plus")) { result = first1 + last1; operator ="+";}

  if (oper.equals("minus")) { result = first1 - last1; operator ="-";}

  if (oper.equals("multi")) { result = first1* last1; operator ="*";}

  if (oper.equals("divide")) { result = first1 / last1; operator ="/";}

  out.println("<h2>°è»ê°á°ú<h2>");

  out.println("<h2>" + first1 + operator + last1 + "=" + result + "<h2>");

}

%>

 

 

 

À§ÀÇ ¿¹Á¦¸¦ º¸½Ã¸é HTMLÆû ¾ç½ÄÀ¸·Î °£´ÜÇÏ°Ô »çÄ¢¿¬»êÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µé°í JSP½ºÅ©¸³Æ® ºÎºÐ¿¡¼­ ÆûÀÇ post¹æ½ÄÀ¸·Î ³Ñ¾î¿Â µ¥ÀÌÅ͸¦ ¹Þ¾Æ¼­ °è»êÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú °á°ú¸¦ º¸½Ã¸é, 1000+200=1200¡±À¸·Î µ¡¼ÀÀÇ °á°ú´Â Àß ³ª¿ÔÁö¸¸ 1000/0ÀÇ ¿¬»êÀ» ½ÇÇà½ÃŰ¸é ¾Æ·¡ÀÇ ±×¸²°ú °°ÀÌ ¾ÆÁÖ º¹ÀâÇÑ ¿¡·¯¹ß»ý Äڵ尡 Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸ÀÌ°Ô µË´Ï´Ù.

 

 

À§¿Í °°Àº Çö»óÀ» ¹æÁöÇϱâ À§ÇØ À§ÀÇ Äڵ忡¼­ ÁÖ¼® ó¸® ÇÑ ºÎºÐÀ» ½ÇÁ¦ ÄÚµå·Î ¸¸µé¾î ÁÝ´Ï´Ù.

 

n        <%@ page errorPage = "calculerr.jsp" %>

 

 ±×¸®°í  ¾Æ·¡¿Í °°ÀÌ ¿¡·¯¸¦ ó¸®ÇØ ÁÖ´Â calculerr.jspÆäÀÌÁö¸¦ ¸¸µé¾ú½À´Ï´Ù.

 

calculerr.jsp

¿¡·¯¸¦ ¹Þ¾Æ ó¸®ÇÏ´Â ÆäÀÌÁö

 

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page isErrorPage = 
"true" %>
<HTML>

<BODY>

<h2>¿¡·¯Ã³¸® ÆäÀÌÁö</h2>
<h3>´ÙÀ½ ¹®Á¦ ¶§¹®¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.</h3>
<I><%= exception.getMessage()%></I>
<h3>¿¡·¯ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.</h3>
<I><%= exception %></I>

</BODY>

</HTML>

 

  

 

 À§ ¼Ò½º¿Í °°ÀÌ ¿¡·¯¸¦ ó¸®ÇØÁÙ ÆäÀÌÁö¸¦ ¸¸µç ÈÄ ¿¡·¯°¡ ¹ß»ýÇϸé À§ÀÇ calcul.jspÆäÀÌÁö¿¡¼­ <%@ page errorPage=¡°»ó´ëÀûurl¡± %> ¸¦ ÅëÇØ¼­ exception°´Ã¼°¡ ¿¡·¯ÀÇ Á¤º¸¸¦ °¡Áö°í ³Ñ¾î¿À°Ô µË´Ï´Ù.

 

 ±×·¯¸é ÀÌ ÆäÀÌÁö¿¡¼­´Â ÇöÀç ÆäÀÌÁö°¡ ¿¡·¯¸¦ ó¸®ÇÒ °ÍÀ» ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î Ç¥½ÃÇϰí ÀÖ½À´Ï´Ù.

 

n        <%@ page isErrorPage = "true" %>

 

 ±×¸®°í exception °´Ã¼¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÙ ¿¡·¯ÆäÀÌÁö¸¦ ÀûÀýÇÏ°Ô ¼³Á¤ÇÕ´Ï´Ù

 

n        <h3>´ÙÀ½ ¹®Á¦ ¶§¹®¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.</h3>

n        <I><%= exception.getMessage()%></I>

n        <h3>¿¡·¯ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.</h3>

n        <I><%= exception %></I>

 

 ÇÏÁö¸¸ isErrorPage ¼Ó¼ºÀ» false·Î ÇßÀ» °æ¿ì¿¡´Â ¿¡·¯ÆäÀÌÁö´Â Á¦ ±â´ÉÀ» ÇÏÁö ¸øÇÕ´Ï´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸½ÃÁÒ. ÀÌ ¿¹Á¦´Â calculerr.jsp ÆÄÀÏ¿¡¼­ isErrorPage ¼Ó¼ºÀ» false·Î ¹Ù²Ù¾ú½À´Ï´Ù. ±×¸®°í calcul.jspÀÇ errorPage °æ·Î¸¦ calculerr1.jsp ·Î ¹Ù²Ù¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù.

 

calculerr1.jsp

¿¡·¯¸¦ ¹Þ¾Æ ó¸®ÇÏ´Â ÆäÀÌÁö

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page isErrorPage = 
"false" %>
<HTML><BODY>
<h2>¿¡·¯Ã³¸® ÆäÀÌÁö</h2>
<h3>´ÙÀ½ ¹®Á¦ ¶§¹®¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.</h3>
<I><%= exception.getMessage()%></I>
<h3>¿¡·¯ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.</h3>
<I><%= exception %></I>
</BODY></HTML>

  

 

 °á°ú¸¦ ºÁµµ ¾Ë ¼ö ÀÖµíÀÌ isErrorPage¼Ó¼ºÀ» true·Î ¼³Á¤À» ÇØ¾ßÁö¸¸ ErrorPageÀÇ ±â´ÉÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 ÀÌ·¸°Ô ¿¡·¯¸¦ ó¸®ÇÏ´Â ÆäÀÌÁö¸¦ º°µµ·Î µÎ°í exception°´Ã¼¸¦ Ȱ¿ë ÇÔÀ¸·Î¼­ ÇÁ·Î±×·¡¸Ó´Â »ç¿ëÀÚ¿¡°Ô º¹ÀâÇϰí ÀÚ¼¼ÇÑ ¿¡·¯¸¦ º¸¿©ÁÙ ÇÊ¿ä¾øÀÌ ¿øÇϴ ó¸®¸¦ ÇØ ÁÙ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.

 

java.lang.ThrowableÀÇ ¸â¹ö¸Þ¼­µå

 

public String getMessage() : ¿¹¿Ü °´Ã¼ÀÇ ¿¡·¯ ¸Þ¼¼Áö¸¦ ½ºÆ®¸µÇüÀ¸·Î µ¹·ÁÁÝ´Ï´Ù.

public void printStackTace() : Ç¥ÁØ ¿¡·¯ Ãâ·Â ½ºÆ®¸²À¸·Î ¿¡·¯ °æ·Î¸¦ ÃßÀûÇÏ¿© Ãâ·ÂÇØÁÝ´Ï´Ù.

public void printStackTrace(PrintStream s) : Á¤ÇØÁø Ãâ·Â½ºÆ®¸²À¸·Î ¿¡·¯ °æ·Î¸¦ ÃßÀûÇÏ¿© Ãâ·ÂÇØ ÁÝ´Ï´Ù.


 



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºJSP1ºÎ
ÀúÀÚ:ÃÖ¿µ°ü