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