¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦7Àå Exception  7.3.2 ¿¡·¯Ã³¸® ¹Ì·ç±â  

 

7.3.2 ¿¡·¯Ã³¸® ¹Ì·ç±â

 

¸Þ¼­µå¸¦ »ç¿ëÇÒ ¶§, ¿¡·¯Ã³¸®¸¦ Ç϶ó´Â ¿¡·¯°¡ ¹ß»ýÇÏ¿´´Ù¸é ¼­½¿¾øÀÌ ¿¡·¯Ã³¸® ±¸¹®À» ´Þ¾Æ ÁÝ´Ï´Ù. ³»ºÎ¿¡¼­ ¾î¶»°Ô Ç߱淡 ±× ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â »ç¶÷ÀÌ ¿¡·¯Ã³¸®¸¦ ÇØ¾ß ÇÒ±î¿ä. ±× ´äÀº throws¿¡ ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¸¸µç ¸Þ¼­µå ³»ºÎ¿¡¼­ ¿¡·¯Ã³¸®¸¦ ÇØ¾ß Çϴµ¥ ¿¡·¯Ã³¸®¸¦ ÇÏÁö ¾Ê°í ¸Þ¼­µå ³¡¿¡ ¡°throws ¿¡·¯À̺¥Æ®¡±¸¦ ºÙÀÎ´Ù¸é ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â °÷¿¡¼­ ¿¡·¯Ã³¸®¸¦ ÇØ¾ß ÇÕ´Ï´Ù. Áï, ¸Þ¼­µå ³»ºÎ¿¡¼­ ó¸®ÇÏÁö ¾Ê°í ¸Þ¼­µå¸¦ »ç¿ëÇÒ ¶§ ¿¡·¯Ã³¸®¸¦ Çϵµ·Ï ¿¡·¯Ã³¸®¸¦ ¹Ì·ç´Â °ÍÀÔ´Ï´Ù.

 

 ÀÌ·± °æ¿ì´Â ¾ÆÁÖ ½±°Ô ã¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. º¸ÅëÀÇ °æ¿ì ½ºÆ®¸²¿¡¼­ µ¥ÀÌÅ͸¦ ±â·ÏÇϰųª ÀÐ¾î µéÀÏ ¶§  ³»ºÎ¿¡¼­ ó¸®ÇÏÁö ¾Ê°í Äڵ带 ÀÛ¼ºÇϰí ÀÖ´Â ÇÁ·Î±×·¡¸Ó¿¡°Ô Àü´ãÀ» ½Ã۰í ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ ¿¡·¯Ã³¸®°¡ ´Ù ±×·¸Áö ¾Ê½À´Ï±î? À§ÀÇ URL°´Ã¼»ý¼º ¿¹¿¡¼­ ¿ì¸®´Â URL°´Ã¼¸¦ »ý¼ºÇϸ鼭 ¿¡·¯Ã³¸®¸¦ ÇØ ÁÖ°í ÀÖ½À´Ï´Ù. ³»ºÎÀÇ ¸Þ¼­µå ³»¿¡¼­ ¿¡·¯Ã³¸®ÀÛ¾÷À» ¹Ì·ç¾ú±â ¶§¹®¿¡ ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â »ç¶÷¿¡°Ô ¿¡·¯Ã³¸®¸¦ ÇØ ÁÖµµ·Ï Çϰí ÀÖ½À´Ï´Ù. URL°´Ã¼¸¦ »ý¼ºÇÒ ¶§ ¿¡·¯°¡ ³ª´Â °ÍÀº URL»ý¼ºÀÚ ¸Þ¼­µå¿¡¼­ ¿¡·¯Ã³¸®¸¦ ¹Ì·é °ÍÀÔ´Ï´Ù. Áï, throws Ű¿öµå¸¦ »ý¼ºÀÚ ¸Þ¼­µå¿¡¼­ »ç¿ëÇÑ °ÍÀÌÁö¿ä. ÀÌ·¯ÇÑ ¿¡·¯Ã³¸®ÀÇ ¿¹¸¦ Á÷Á¢ ¸¸µé¾î º¸µµ·Ï ÇÏÁÒ.

 

PassException.java

import java.net.*;

public class PassException {

             public URL makeURL(String urlstr) throws MalformedURLException{

                           return new URL(urlstr);

             }

             public static void main(String args[]) {

                           PassException p = new PassException();

                           URL url = p.makeURL("http://www.yahoo");

             }

}

C:\examples\7. Exception>javac PassException.java

PassException.java:9: unreported exception java.net.MalformedURLException; must

be caught or declared to be thrown

                URL url = p.makeURL("http://www.yahoo");

                           ^

1 error

 

ºÐ¸í, URL°´Ã¼¸¦ »ý¼ºÇÒ ¶§¿¡´Â ¿¡·¯Ã³¸®¸¦ ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸ URL°´Ã¼¸¦ »ý¼ºÇÏ¿© ¸®ÅÏÀ» ÇÒ ¶§ ¿¡·¯Ã³¸®¸¦ ÇÏÁö¾Ê°í ¸Þ¼­µåÀÇ ¼±¾ð ºÎºÐ¿¡ throws MalformedURLExceptionÀ¸·Î ó¸®ÇÏ¿© makeURL¸Þ¼­µå¸¦ »ç¿ëÇÒ ¶§ ¿¡·¯Ã³¸®¸¦ Çϵµ·Ï Çϰí ÀÖ½À´Ï´Ù. makeURL¸Þ¼­µå¸¦ »ç¿ëÇÒ ¶§, ¿¡·¯Ã³¸®¸¦ ÇÏÁö ¾Ê´Â´Ù¸é ÄÄÆÄÀÏŸÀÓ¿¡ À§¿Í °°Àº ¿¡·¯°¡ ¶³¾îÁý´Ï´Ù.

  ¿¡·¯ ó¸® ¹Ì·ç´Â ¹æ¹ý

n        public URL makeURL(String urlstr) throws MalformedURLException{

n            return new URL(urlstr);

n        }

 

  ¿ø·¡´Â ¸Þ¼­µå ³»ºÎ¿¡¼­ ´ÙÀ½°ú °°ÀÌ ÇØ ÁÖ¾î¾ßÁÒ.

 

public URL makeURL(String urlstr) {

   try{

     return new URL(urlstr);

   catch(MalformedURLException e) {System.out.println(e);}

}

 

¾ÆÁÖ °£´ÜÇÑ ±â¹ýÀÌÁö¸¸ ¶óÀ̺귯¸®ÀÇ ´ëºÎºÐ¿¡¼­ ÀÌ¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. »ç¿ëÀÚ°¡ ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ¿© °´Ã¼¸¦ ¸¸µé°í °´Ã¼¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§ »ç¿ëÀÚ°¡ ¾Ë¾Æ¼­ ó¸®Çϵµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ¾Ë¾ÆµÎ¸é À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ°ÚÁÒ. ´ÙÀ½Àº À§ÀÇ Äڵ带 ¼öÁ¤ÇÏ¿© ÄÄÆÄÀÏ¿¡·¯¸¦ Á¦°ÅÇÑ ¿¹ÀÔ´Ï´Ù.

 

PassException.java

import java.net.*;

public class PassException {

             public URL makeURL(String urlstr) throws MalformedURLException{

                           return new URL(urlstr);

             }

             public static void main(String args[]) {

                           PassException p = new PassException();

                           try{        

                                        URL url = p.makeURL("http://www.yahoo.co.kr");

                                        //Á¤È®ÇÑ URLÀ» ÀÔ·ÂÇÏÁö ¾Ê¾Æ¼­ ¿¡·¯¹ß»ý

                                        System.out.println(url);

                           } catch(MalformedURLException e) {

                                        System.out.println("--MalformedURLException ¹ß»ý±¸¹®--");

                                        System.out.println("Á¤º¸:e.getMessage(): " + e.getMessage());

                                        System.out.println("Á¤º¸:e.toString(): " + e.toString());

                                        System.out.print("Á¤º¸:e.printStackTrace():");e.printStackTrace();

                                        return;

                           } finally{

                                        System.out.println("finally: °á±¹À̸®·Î ¿À´Â±º¿ä");

                           }

             }

}

C:\examples\7. Exception>javac PassException.java

C:\examples\7. Exception>java PassException

http://www.yahoo.co.kr

finally: °á±¹À̸®·Î ¿À´Â±º¿ä

 

À̰ÍÀº URLŬ·¡½ºÀÇ »ý¼ºÀÚ ¸Þ¼­µå°¡ ¿¡·¯Ã³¸® ¹Ì·ç±â¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. À§ÀÇ ¿¹Á¦´Â ±× 󸮸¦ ´Ù½Ã ¹Ì·ç¾î makeURL¸Þ¼­µå¸¦ »ç¿ëÇÒ ¶§ ¿¡·¯Ã³¸®Çϵµ·Ï ÇÑ °ÍÀÔ´Ï´Ù.



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