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

 

7.2.2 ±âº»ÀûÀÎ ¿¡·¯Ã³¸®

 º¸Åë ¿¡·¯Ã³¸®´Â try – catch – finally¼øÀ¸·Î »ç¿ëÇÏ°Ô µË´Ï´Ù. À̰ÍÀ» »ç¿ëÇßÀ» ¶§´Â ÇÁ·Î±×·¥ÀÇ ¼Ò½º°¡ »ó´çÈ÷ ±æ¾îÁö°Ô µË´Ï´Ù. ÇÏÁö¸¸ ¿¡·¯Ã³¸®ÀÇ °­·ÂÇÔÀ» ¾Ë°í ÀÖ´Ù¸é ±× Á¤µµ´Â ³Ê±×·´°Ô ºÁ ÁÖ´Â °ÍÀÌ ¸ÂÁö ¾ÊÀ»±î¿ä? ÀÏ´Ü try-catch-finally±¸¹®ºÎÅÍ Çѹø »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. try – catch – finally´Â ´ÙÀ½ÀÇ ±¸¹®°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù.

 

¿¡·¯ 󸮱â(exception handler)

try {

// ¿¡·¯¸¦ ¹ß»ý½Ãų °¡´É¼ºÀÌ ÀÖ´Â ÄÚµå

    } catch(¿¡·¯À̺¥Æ®Á¾·ù1 º¯¼ö) {

// ¿¡·¯1ÀÌ ¹ß»ýÇßÀ» ¶§ ¿¡·¯1ŸÀÔÀÇ À̺¥Æ®°¡ catch·Î ³Ñ¾î¿À°Ô µÈ´Ù.

    } catch(¿¡·¯À̺¥Æ®Á¾·ù2 º¯¼ö) {

// ¿¡·¯2°¡ ¹ß»ýÇßÀ» ¶§ ¿¡·¯2ŸÀÔÀÇ À̺¥Æ®°¡ catch·Î ³Ñ¾î¿À°Ô µÈ´Ù.

    }

      ¡¦¡¦¡¦¡¦(¿©·¯ °³ÀÇ catch»ç¿ë)

finally{

        // ÃÖÁ¾ÀûÀ¸·Î ¹«Á¶°Ç ÇØ¾ß ÇÏ´Â ÀÛ¾÷ ó¸®

    }

 

 ¿¡·¯Ã³¸®´Â µÎ °¡Áö °üÁ¡¿¡¼­ »ç¿ëÇÑ´Ù°í º¼ ¼ö ÀÖ½À´Ï´Ù. ù°´Â ¿¡·¯Ã³¸®¸¦ ¹Ýµå½Ã ÇØÁÖ¾î¾ß Çϱ⠶§¹®¿¡ »ç¿ëÇÏ´Â °ÍÀÌÁÒ. ÀÏ´Ü ÄÄÆÄÀÏÀÌ ¾ÈµÇ´Ï ¾î¿ ¼ö ¾ø´Â °ÍÀ̰í¿ä. µÑ°´Â ƯÁ¤ ¿¡·¯¸¦ ó¸®ÇϰíÀÚ ¿©·¯ºÐÀÌ »ç¿ëÇÏ°í ½Í¾î¼­ »ç¿ëÇÏ´Â °ÍÀÌÁÒ. µÎ °æ¿ì ¸ðµÎ »ç¿ëÇÏ´Â ¹æ¹ýÀº °°½À´Ï´Ù.

 

try ºí·Ï¿¡¼­ ¿¡·¯Ã³¸®¸¦ ÇÏ°í ½Í°Å³ª ó¸®ÇØ ÁÖ¾î¾ß ÇÏ´Â Äڵ带 ³Ö½À´Ï´Ù. try´Â ¸» ±×´ë·Î ÀÌ ±¸¹®À» Çѹø ó¸® ÇØº¸ÀÚ¶ó´Â ½ÄÀÌÁÒ. ±×¸®°í, ¸¸¾à¿¡ ¿¡·¯°¡ ³­´Ù¸é ¿¡·¯À̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ÀÌ À̺¥Æ®´Â ¿¡·¯¿¡ µû¶ó¼­ ´Þ¶óÁö°Ô µË´Ï´Ù. try·Î ½Ãµµ¸¦ ÇØ º¸¾ÒÀ¸´Ï ¿¡·¯°¡ ¹ß»ýÇϸé catch·Î Àâ¾Æ¾ß °ÚÁÒ. ÇÏÁö¸¸ ¿¡·¯ÀÇ À̺¥Æ®´Â Çϳª µÑÀÌ ¾Æ´Õ´Ï´Ù. ±×·¡¼­ tryÇϳª¿¡ ¿©·¯ °³ÀÇ catch°¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸»Àº catch¿¡´Â ÇØ´ç ¿¡·¯ À̺¥Æ®¸¦ ¸í½ÃÇØ ÁÖ¾î¾ß ÇÏ¸ç ¹ß»ýÇÏ´Â À̺¥Æ®¿¡ ¸Â´Â catchºí·ÏÀÌ ½ÇÇà µÇ´Â °ÍÀÌÁÒ. catchºí·Ï¿¡´Â ÇØ´ç ¿¡·¯°¡ ¹ß»ýÇßÀ» ¶§ÀÇ Ã³¸® Äڵ尡 ¿À°Ô µË´Ï´Ù.

 

¼ø¼­¸¦ Á¤¸®ÇÑ´Ù¸é

1.        try·Î ÀÏ´Ü ÇØº¸°í

2.        try¾È¿¡¼­ ¿¡·¯À̺¥Æ®°¡ ¹ß»ýÇϸé

3.        catch¿¡¼­ ÀÏÄ¡ÇÏ´Â À̺¥Æ®°¡ ÀÖÀ¸¸é ÇØ´ç ºí·ÏÀ¸·Î °£´Ù.

4.        ÇØ´ç catch ºí·ÏÀ» ½ÇÇàÇÏ¿© ¿¡·¯Ã³¸®¸¦ ÇÑ´Ù.

 

¿¡·¯Ã³¸®±îÁö ³¡³­ ÈÄ, ¿¡·¯°¡ ¹ß»ýÇϰųª ¸»°Å³ª ÇÁ·Î±×·¥¿¡¼­ ÃÖÈÄÀÇ ¸¶¹«¸® ÀÛ¾÷Àº  ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ±× µÞ¸¶¹«¸® ÀÛ¾÷À» finally ºí·ÏÀÌ ´ã´çÇϰí ÀÖ½À´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇÏ´õ¶óµµ, try³ª catchÀÇ Áß°£¿¡ returnÀÌ µÇ´õ¶óµµ, finallyºí·ÏÀº ¹Ýµå½Ã ½ÇÇàÀ» ÇÏ°Ô µË´Ï´Ù. À§ÀÇ ¼ø¼­¿¡¼­ finally°¡ ºüÁ³ÁÒ.

 

¸¶Áö¸· ¼ø¼­°¡ Çϳª ´õ ÀÖÁÒ.

5.        finally´Â ¹«Á¶°Ç ½ÇÇàÇÑ´Ù.

 

ÀÏ´Ü, ¿¡·¯°¡ ³ª´Â ¿¹Á¦¸¦ Çϳª ¸¸µé¾î º¸ÁÒ.

 

NullErrorMain.java

public class NullErrorMain{

             public static void main(String[] args){

                           String str = null;

                           System.out.println(str.toString()); //¿¡·¯¹ß»ý

             System.out.println("ÇÁ·Î±×·¥ÀÇ Á¾·á");

             }

}

C:\examples\6. Array>javac   NullErrorMain.java

 

C:\examples\6. Array>java NullErrorMain

Exception in thread "main" java.lang.NullPointerException

        at NullErrorMain.main(NullErrorMain.java:4)

 

 À§ÀÇ ¿¹¿¡¼­ strÀº nullÀÔ´Ï´Ù. ¸Þ¸ð¸®°¡ »ý¼ºµÇÁö ¾ÊÀº str¿¡¼­ ¸â¹ö¸Þ¼­µåtoStringÀ» È£ÃâÇÏ´Â °ÍÀº À߸øµÈ °ÍÀÌÁÒ. ÀÌ·² ¶§ ÇÁ·Î±×·¥Àº NullPointerException À̺¥Æ®¸¦ ¹ß»ý½Ãŵ´Ï´Ù. ±×·±µ¥ ÁÖÀÇ ±í°Ô º¼ °ÍÀÌ ÀÖ½À´Ï´Ù. ¿¡·¯°¡ ¹ß»ý ÇßÀ» ¶§ ÇÁ·Î±×·¥ÀÌ ¹Ù·Î Á¾·áÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. System.out.println(¡°ÇÁ·Î±×·¥Á¾·á¡±)±îÁö °¡Áöµµ ¸øÇϰí ÇÁ·Î±×·¥Àº ³¡³ª¹ö¸° °ÍÀÔ´Ï´Ù. ÀÚ! ÀÌÁ¦ try catch¸¦ ºÙ¿© Áà º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

NullErrorMain.java(¼öÁ¤)

public class NullErrorMain{

             public static void main(String[] args){

                           try{

                                        String str = null;

                                        System.out.println(str.toString());

                           }catch(NullPointerException e){

                                        System.out.println(e.toString() + "¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù");

                           }

                           System.out.println("ÇÁ·Î±×·¥ÀÇ Á¾·á");

             }

}

C:\examples\6. Array>javac   NullErrorMain.java

 

C:\examples\6. Array>java NullErrorMain

java.lang.NullPointerException¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù

ÇÁ·Î±×·¥ÀÇ Á¾·á

 

 À§¿Í °°ÀÌ ¿¡·¯°¡ ¹ß»ýÇÒ ºÎºÐ¿¡ ¿¡·¯Ã³¸®¸¦ ÇØÁÖ¸é ¿¡·¯ À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ ÇØ´ç ¿¡·¯À̺¥Æ®°¡ Ç¥½ÃµÇ¾î ÀÖ´Â °÷À¸·Î °¡¼­ ó¸®ÇÏ°Ô µË´Ï´Ù. À̶§´Â ÇÁ·Î±×·¥ÀÌ ¸ØÃßÁö ¾ÊÁÒ. ³¡±îÁö ¼öÇàÇÕ´Ï´Ù. À̰ÍÀº ¿¡·¯Ã³¸®¸¦ ÇßÀ¸´Ï ÇÁ·Î±×·¥ÀÌ ¾ÈÀüÇÏ´Ù´Â ¶æÀÌÁÒ. ±×·±µ¥, ÇöÀç catch´Â NullPointerExceptionÀ̺¥Æ®¸¦ °¨½Ã¸¦ Çϰí ÀÖ½À´Ï´Ù. ¸¸¾à NullPointerExceptionÀÌ ¾Æ´Ñ ´Ù¸¥ À̺¥Æ®°¡ ¸í½ÃµÇ¾î ÀÖ´Ù¸é try±¸¹®¿¡¼­ ¹ß»ýÇÏ´Â ¿¡·¯´Â catch·Î °¨ÁöÇÒ ¼ö ¾ø½À´Ï´Ù.



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