¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦7Àå Exception  7.3.1 ¿¡·¯Ã³¸®(try, catch, finally)  

 

7.3 ¿¡·¯Ã³¸® ½Ç·Ê

 

 

 

 

7.3.1 ¿¡·¯Ã³¸®(try, catch, finally)

try¿Í catch¸¸À» »ç¿ëÇÏ¿© ¿¡·¯Ã³¸®±¸¹®À» ¸¸µé¾î º¸¾Ò½À´Ï´Ù. ÀÌÁ¦ finally±îÁö ºÙ¿© º¸µµ·Ï ÇϰڽÀ´Ï´Ù. try, catch, finally¼øÀ¸·Î ¿¡·¯Ã³¸®±¸¹®À» »ý¼ºÇÏ°Ô µË´Ï´Ù. try¿Í catch´Â ´Ùµé ¾Æ½ÇÅ×°í finally´Â try¿Í catch±¸¹®À» Åë°úÇÏ¸é ¹«Á¶°ÇÀûÀ¸·Î ¹Ýµå½Ã ½ÇÇàµÇ´Â ±¸¹®ÀÔ´Ï´Ù. º¸ÅëÀÇ ÇÁ·Î±×·¥¿¡¼­´Â finally¸¦ Àß »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖÁö¸¸, finally¸¦ Àß »ç¿ëÇÏ¸é ¾ÆÁÖ ³í¸®ÀûÀÎ ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ÀÌ Àý¿¡¼­´Â finally¿Í ÇÔ²² »ç¿ëµÇ´Â try, catch¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

 ÀϹÝÀûÀ¸·Î ¿¡·¯¸¦ ´Ù·ç´Â ¹æ¹ýÀ» ¼¼°¡Áö·Î ±¸ºÐÇØ¼­ »ý°¢ ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ±× ¹æ¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù.

 

¿¡·¯Ã³¸®ÀÇ ºÐ·ù

n        »ç¿ëÀÚ°¡ ÇÊ¿äÇÏ´Ù°í »ý°¢ÇÏ¿© ¿¡·¯Ã³¸®±¸¹®À» »ç¿ë

n        »ç¿ëÀÚ°¡ Á÷Á¢ ¿¡·¯À̺¥Æ®¸¦ ¹ß»ý½ÃŰ´Â °Í(throw)

n        ¹Ýµå½Ã ¿¡·¯Ã³¸®¸¦ ÇØÁÖ¾î¾ß ÇÏ´Â °Í

 

ÀÏ´Ü, »ç¿ëÀÚ°¡ ÇÊ¿äÇÏ´Ù°í »ý°¢ÇÏ¿© ¿¡·¯¸¦ »ç¿ëÀÚ°¡ Á÷Á¢ ó¸®ÇØ ÁÖ´Â ¿¹Á¦¸¦ ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

BasicException.java °£´ÜÇÑ ¿¡·¯Ã³¸® ±¸¹®

public class BasicException{

             public static void main(String args[]) {

                           try {

                                        int[] exArray = new int[4];

                                        exArray[0] = 0;

                                        exArray[1] = 100;

                                        exArray[2] = 200;

                                        exArray[3] = 300;

                                        //°íÀ§·Î ¿¡·¯À¯¹ß: ArrayÀÇ ¹üÀ§¸¦ ¹þ¾î³ªµµ·Ï ÇÑ´Ù.

                                        for(int i=0; i<exArray.length+1; i++)

                                                     System.out.println("exArray["+i+"]=" + exArray[i]);

                           } catch(ArrayIndexOutOfBoundsException e) {

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

                                        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 BasicException.java

C:\examples\7. Exception>java BasicException

exArray[0]=0

exArray[1]=100

exArray[2]=200

exArray[3]=300

--ArrayIndexOutOfBoundsException ¹ß»ý±¸¹®--

Á¤º¸:e.getMessage(): null

Á¤º¸:e.toString(): java.lang.ArrayIndexOutOfBoundsException

Á¤º¸:e.printStackTrace():java.lang.ArrayIndexOutOfBoundsException

        at BasicException.main(BasicException.java:11)

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

 

À§ÀÇ ¿¹Á¦¿¡¼­ °íÀÇ·Î ¿¡·¯¸¦ ¹ß»ý ½Ã۰í ÀÖ½À´Ï´Ù. ¹è¿­Àº 4°³¸¦ ¼±¾ðÇÏ°í ¼±¾ðµÈ ¹è¿­ÀÇ ¹üÀ§¸¦ Çϳª ¹þ¾î³ª¼­ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù. ¹è¿­ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼± ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.

 

n        for(int i=0; i<exArray.length+1; i++)

n         System.out.println("exArray["+i+"]=" + exArray[i]);

 

exArray.length +1 ¸¸Å­ Ãâ·ÂÇßÀ¸´Ï ´ç¿¬È÷ exArray[4]´Â Á¸ÀçÇÏÁö ¾Ê´Âµ¥ Ãâ·ÂÀ» Çϰí ÀÖ½À´Ï´Ù. ¹è¿­ÀÇ ¹üÀ§¸¦ ¹þ¾î³µ±â ¶§¹®¿¡ ÇÁ·Î±×·¥»ó¿¡¼­ ¿¡·¯À̺¥Æ®¸¦ ¹ß»ý½Ã۰í ÀÖ½À´Ï´Ù. ¿ì¸®´Â À̰ÍÀ» ArrayIndexOutOfBoundsExceptionÀ̺¥Æ®¶ó°í ÇÕ´Ï´Ù. À̸§ÀÌ Á» ±æÁÒ. À̰ÍÀº langÆÐŰÁö¿¡¼­ Áö¿øÇϱ⠶§¹®¿¡ Ưº°ÇÑ ¶óÀ̺귯¸®¸¦ import ½Ãų Çʿ䰡 ¾ø½À´Ï´Ù. ¹°·Ð,  langÀº µðÆúÆ®·Î importµÇ´Â ³ðÀÌÁö¿ä.

 

ÀÌ ¿¡·¯Ã³¸® ±¸¹®Àº ÄÄÆÄÀÏÇÒ ¶§ ¹Ýµå½Ã ÇØÁÖ¾î¾ß ÇÏ´Â ¿¡·¯´Â ¾Æ´Õ´Ï´Ù. »ç¿ëÀÚ°¡ ¿øÇϸé try, catch¹®Àº ¾îµð¶óµµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à¿¡ ¹ß»ýÇÒÁö ¸ð¸£´Â ¿¡·¯¿¡ ´ëºñÇÏ´Â °ÍÀÔ´Ï´Ù. tryºí·Ï¿¡¼­ ArrayIndexOutOfBoundsException¿¡·¯À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù¸é À§ÀÇ °á°ú¿Í °°ÀÌ catch°¡ ÀÌ À̺¥Æ®¸¦ Æ÷ÂøÇÕ´Ï´Ù. ±×¸®°í catch´Â ¹Ýµå½Ã ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â ¿¡·¯ À̺¥Æ®¸¸À» ó¸®ÇÏ°Ô µË´Ï´Ù. À§ÀÇ ¿¹Á¦¿¡¼­µµ catch°¡ °¡Áö°í ÀÖ´Â À̺¥Æ®´Â ¹ß»ýÇÏ´Â À̺¥Æ®¿Í µ¿ÀÏÇϱ⠶§¹®¿¡ catchºí·ÏÀ» ½ÇÇàÇÏ°Ô µË´Ï´Ù. ¸Å°³º¯¼ö·Î ³Ñ¾î¿À´Â e´Â ¿¡·¯À̺¥Æ®¿¡ °ü·ÃµÈ ¸ðµç Á¤º¸¸¦ ´ã°í ÀÖ½À´Ï´Ù.

 

n         catch(ArrayIndexOutOfBoundsException e)

 

±×·±µ¥ ¸¸¾à catchÀÇ À̺¥Æ®°¡ ArrayIndexOutOfBoundsException°¡ ¾Æ´Ï°í ´Ù¸¥ ¿¡·¯À̺¥Æ®¶ó¸é ¾î¶»°Ô µÉ±î¿ä? À̰ÍÀº À§¿¡¼­µµ ¾ð±ÞÀ» ÇßÁÒ. catch·Î °¡Áö ¾Ê°í °¡»ó¸Ó½Å Â÷¿ø¿¡¼­ ¹è¿­ÀÇ index¿¡·¯¸¦ ¹ß»ý ½Ãų °ÍÀÔ´Ï´Ù. catch´Â catch¿¡ ¸í½ÃÇØÁØ ¿¡·¯¸¸À» Àâ½À´Ï´Ù. ÀÚ ±×·¸´Ù¸é catch±¸¹®À» Çѹø º¸µµ·Ï ÇϰڽÀ´Ï´Ù. catch´Â º¸Åë ¿¡·¯ÀÇ Á¤º¸ Ãâ·ÂÀ̳ª ¿¡·¯¿¡ ´ëÇÑ ´ëºñ¸¦ ÇÒ ¼ö ÀÖ´Â ÄÚµåµéÀÌ ¿À°Ô µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â ¿¡·¯À̺¥Æ®ÀÇ Á¤º¸¸¦ Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÖ°í ÀÖ½À´Ï´Ù.

 

n         e.getMessage(): ¿¡·¯À̺¥Æ®¿¡¼­ µé¾î¿À´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù.

n         e.toString(): ¿¡·¯À̺¥Æ®ÀÇ toString()À» È£ÃâÇÏ¿© °£´ÜÇÑ ¿¡·¯¸Þ½ÃÁö¸¦ È®ÀÎÇÑ´Ù.

n         e.printStackTrace(): ¿¡·¯¸Þ½ÃÁöÀÇ ¹ß»ý ±Ù¿øÁö¸¦ ã¾Æ¼­ ´Ü°èº° ¿¡·¯¸¦ º¸¿©ÁØ´Ù.

 

À§¿Í °°Àº ¿¡·¯ À̺¥Æ®¿¡ °ü·ÃµÈ ¸Þ¼­µåµéÀ» ÀÌ¿ëÇÏ¿© ¾î¶² ¿¡·¯°¡ ¹ß»ýÇß´ÂÁö¸¦ Á¡°ËÇÏ°Ô µË´Ï´Ù. º°´Ù¸¥ ¹ÝÀÀÀÌ ¾ø´Â getMessage¸Þ¼­µå´Â ¿¡·¯°¡ ¹ß»ýÇÒ ¶§ ¸Þ½ÃÁö¸¦ °¡Áö°í ÀÖ´Ù¸é ±× ¸Þ½ÃÁö¸¦ ¾ò´Â ±â´ÉÀ» ÇÕ´Ï´Ù. getMessage¸Þ¼­µåÀÇ ½ÇÁ¦ ¿¹´Â ´ÙÀ½ ¿¹Á¦¿¡¼­ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

¸¶Áö¸·À¸·Î Çϳª¸¸ ´õ »ìÆìº¸°í ³Ñ¾î°¡µµ·Ï ÇÏÁÒ. À§ÀÇ catch±¸¹®¿¡¼­ ¡°return;¡±À» »ç¿ëÇß½À´Ï´Ù. ±×·±µ¥ void¿¡´Â ¸®ÅÏÀÌ ¾ø´Ù°í ÇßÀݽÀ´Ï±î? ¸Â½À´Ï´Ù. ¿©±â¼­µµ returnÀ̶ó´Â ´Ü¾î´Â ÀÖÁö¸¸ returnµÚ¿¡ ¾Æ¹«°Íµµ ¸®ÅÏÇÏÁö ¾Ê´Â °ÍÀÌ º¸ÀÌ½Ç °ÍÀÔ´Ï´Ù. voidÀÏ ¶§´Â ±×³É returnÀÌ·¸°Ô »ç¿ëÇÏ¸é ¸Þ¼­µå¸¦ ¹Ù·Î ºüÁ® ³ª¿À°Ô µË´Ï´Ù. returnÀ» ÇÏ¸é ¸Þ¼­µå´Â ¹«Á¶°Ç ¹Ù·Î Á¾·á¸¦ ÇÏ°Ô µË´Ï´Ù.

 

ÇÏÁö¸¸ finally¸¸Å­Àº ½ÇÇàÀ» ÇÏ°í ³ª¿À°Ô µÇ´Â °ÍÀ» °á°ú¿¡¼­ º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. finally¸¦ »ç¿ëÇÏ´Â °¡Àå ÁÁÀº ¿¹´Â µ¥ÀÌÅÍ º£À̽º¿¡¼­ ã¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅͺ£À̽º·Î ConnectionÀ» ¿¬°áÇϰí ÀÛ¾÷À» ÇÏ´ø µµÁß ¿¡·¯°¡ ¹ß»ýÇß´Ù°í °¡Á¤ÇÏÁÒ. ¾Æ¹«¸® ¿¡·¯°¡ ¹ß»ýÇÏ´õ¶óµµ ConnectionÀº ¹«Á¶°Ç ´Ý¾ÆÁÖ°í ³ª°¡¾ß ÇÕ´Ï´Ù. ±×·¸´Ù¸é, ConnectionÇØÁ¦¸¦ finally¿¡ ³Ö´Â °ÍÀÌ ÁÁÁö ¾ÊÀ»±î¿ä? ÇÁ·Î±×·¥ Áß°£¿¡ ¿À·ù°¡ ¹ß»ýÇÏ¿© ConnectionÀ» Á¤È®ÇÏ°Ô ´ÝÁö ¾Ê´Â´Ù¸é µ¥ÀÌÅÍ º£À̽º´Â ConnectionÀ» À¯ÁöÇϰí ÀÖÀ»Áöµµ ¸ð¸£´Ï±î¿ä!

 

´ÙÀ½À¸·Î »ç¿ëÀÚ°¡ Á÷Á¢ ¿¡·¯À̺¥Æ®¸¦ ¹ß»ý½ÃÄѼ­ ¿¡·¯ 󸮸¦ ÇÏ´Â ¿¹¸¦ »ìÆì º¸±â·Î ÇÏÁÒ.

 

UseThrowException.java(»ç¿ëÀÚ°¡ Á÷Á¢ ¿¡·¯À̺¥Æ®¹ß»ý)

public class UseThrowException {

             public static void main(String args[]) {

                           try {

                                        throw new Exception("À̰ÍÀÌ ¿¡·¯ ¸Þ½ÃÁö");

                           }

                           catch(Exception e) {

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

                                        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  UseThrowException.java

C:\examples\7. Exception>java  UseThrowException

--ArrayIndexOutOfBoundsException ¹ß»ý±¸¹®--

Á¤º¸:e.getMessage(): ¿¡·¯ ¸Þ½ÃÁö

Á¤º¸:e.toString(): java.lang.Exception: ¿¡·¯ ¸Þ½ÃÁö

Á¤º¸:e.printStackTrace():java.lang.Exception: ¿¡·¯ ¸Þ½ÃÁö

        at UseThrowException.main(UseThrowException.java:4)

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

 

ÀÌ ¿¹Á¦¿¡¼­´Â »ç¿ëÀÚ°¡ Á÷Á¢ throwŰ¿öµå¸¦ »ç¿ëÇØ¼­ ¿¡·¯À̺¥Æ®¸¦ ¹ß»ý½Ã۰í ÀÖ½À´Ï´Ù. throw·Î ¿¡·¯ À̺¥Æ®¸¦ ¹ß»ý ½Ã۸é ÇØ´ç À̺¥Æ®°¡ ¹ß»ýÇϰí catch¿¡¼­ ±× À̺¥Æ®¸¦ ó¸®ÇÏ°Ô µË´Ï´Ù. ¹°·Ð finally´Â ¹«Á¶°ÇÀûÀ¸·Î ½ÇÇà ÇϰÚÁÒ. ±×¸®°í BasicException.java¿¡¼­ Exception¸Þ½ÃÁö°¡ nullÀ̾ú´Âµ¥ ExceptionÀ» ¹ß»ý½Ãų ¶§ Exception¸Þ½ÃÁö¸¦ ³Ö¾î¼­ ¹ß»ý½ÃŰ´Â ¿¹¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¾î¶°ÇÑ »óȲ¿¡ Á÷Á¢ ¿¡·¯À̺¥Æ®¸¦ ¹ß»ý½ÃŰ°í ¿¡·¯¸Þ½ÃÁö¸¦ Æ÷ÇÔ½ÃŰ°í ½Í´Ù¸é

 

n         throw new Exception("À̰ÍÀÌ ¿¡·¯ ¸Þ½ÃÁö");

 

ÀÌ¿Í °°ÀÌ ¿¡·¯À̺¥Æ®¸¦ »ý¼ºÇÒ ¶§ »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö·Î À̺¥Æ®¸Þ½ÃÁö¸¦ Æ÷ÇÔ½ÃŰ¸é µË´Ï´Ù. ÀÌ À̺¥Æ®´Â catchÀÇ ¸Å°³º¯¼ö Exception e¿¡¼­ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

 

¸¶Áö¸·À¸·Î ¹Ýµå½Ã ¿¡·¯Ã³¸®¸¦ ÇØÁÖ¾î¾ß ÇÏ´Â ±¸¹®À» »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

NeedThrowException.java(¿¡·¯¹ß»ý¿¹Á¦)

import java.net.*;

public class NeedThrowException {

             public static void main(String args[]) {

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

             }

}

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

NeedThrowException.java:5: unreported exception java.net.MalformedURLException;

must be caught or declared to be thrown

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

                          ^

1 error

 

ÀÌ ¿¹Á¦¿¡¼­ URL°´Ã¼¸¦ »ý¼ºÇϰí ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ URL°´Ã¼¸¦ »ý¼ºÇÒ ¶§´Â ¹Ýµå½Ã ¿¡·¯ 󸮸¦ ÇØ ÁÖ¾î¾ß¸¸ ÄÄÆÄÀÏÀÌ µË´Ï´Ù. ÄÄÆÄÀÏ·¯ Â÷¿ø¿¡¼­ ¿¡·¯Ã³¸®°¡ ÇÊ¿äÇÏ´Ù°í »ý°¢µÇ¸é, À§ÀÇ °á°ú¿Í °°ÀÌ ¿¡·¯Ã³¸®±¸¹®À» »ç¿ëÇÏÁö ¾Ê¾Ò´Ù´Â ÄÄÆÄÀÏ¿¡·¯¸¦ ¹ß»ý½ÃŰ°Ô µË´Ï´Ù. ÄÄÆÄÀÏ¿¡·¯¿¡¼­ ¸í½ÃÇÑ °Íó·³ java.net.MalformedURLExceptionÀ̺¥Æ®¿¡ ´ëÇÑ ¿¡·¯Ã³¸®¸¦ ÇÑ´Ù¸é ÀÌ ¿¹Á¦´Â ÄÄÆÄÀÏÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¾Æ·¡´Â ¼öÁ¤ÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

 

NeedThrowException.java(¿¡·¯ ó¸®ÇÑ ¿¹Á¦)

import java.net.*;

public class NeedThrowException {

             public static void main(String args[]) {

                           try{        

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

                           } catch(Exception e) {

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

                                        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 NeedThrowException.java

C:\examples\7. Exception>java NeedThrowException

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

 

¿ì¸®´Â º°´Ù¸¥ °á°ú´Â ¾òÀ» ¼ö ¾øÁö¸¸ URL°´Ã¼¸¦ ¸¸µé ¶§ ¹Ýµå½Ã ¸í½ÃÇØÁÖ¾î¾ß ÇÏ´Â ¿¡·¯±¸¹®»ç¿ëÀÇ ¿¹¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. ±×·±µ¥ ÀÌ»óÇÑ °ÍÀ» ¹ß°ßÇÒ ¼ö ÀÖ½À´Ï´Ù. catch¿¡¼­ ó¸®ÇÑ ¿¡·¯À̺¥Æ®°¡ java.net.MalformedURLExceptionÀÌ ¾Æ´Õ´Ï´Ù. ¾î¶»°Ô µÈ °ÍÀϱî¿ä? ¸¸¾à, ¿©·¯ºÐÀÌ ¿¡·¯ À̺¥Æ®¸¦ Á¤È®ÇÏ°Ô ¸ð¸¥´Ù¸é ÃÖ»óÀ§Å¬·¡½ºÀÇ ¿¡·¯À̺¥Æ®¸¦ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù.  try±¸¹®¿¡¼­ ¹ß»ýÇÏ´Â ¸ðµç À̺¥Æ®¸¦ Exception¿¡¼­ ÀüºÎ ó¸®ÇÏ°Ô µË´Ï´Ù. À̰ÍÀº UpcastingÀÇ ¿ø¸®ÀÔ´Ï´Ù. ¸ðµç ExceptionÀº ExceptionŬ·¡½º¸¦ »ó¼ÓÇϱ⠶§¹®¿¡ ÇÏÀ§ÀÇ ´Ù¸¥ À̺¥Æ®°¡ ¹ß»ýÇÏ´õ¶óµµ ExceptionÀ¸·Î UpcastingµÇ´Â ¿ø¸®ÀÔ´Ï´Ù. ¾ÆµéÀº ¾Æ¹öÁö·Î UpcastingµÇÁö ¾Ê½À´Ï±î!

 

Áö±Ý±îÁö 3°¡Áö Á¾·ùÀÇ ¿¡·¯Ã³¸®»ç¿ë¹ýÀ» ¹è¿ö º¸¾Ò½À´Ï´Ù. ¡°¿¡·¯Ã³¸®°¡ º°°Í¾Æ´Ï±º¡±À̶ó°í »ý°¢ÇϽøé Å«ÀÏÀÌ ³³´Ï´Ù. ¿©·¯ºÐÀÌ °èȹÇϰí ÀÖ´Â ÇÁ·Î±×·¥ÀÌ »ó´çÈ÷ Å©°í º¹ÀâÇÏ´Ù¸é ½ÇÇàŸÀÓÀÇ ¿¡·¯¸¦ µð¹ö±ëÇÑ´Ù´Â °ÍÀº, ±×¸®°í ½ÇÇàŸÀÓ¿¡ ¹ß»ýÇÏ´Â ¿¡·¯¿¡ ÀûÀýÇÑ ´ëºñ¸¦ ÇÑ´Ù´Â °ÍÀº ´ë´ÜÈ÷ ¾î·Æ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ µ¥¸ó°è¿­ÀÇ ÇÁ·Î±×·¥À» °èȹÇÏ°í °è½Ã´Ù¸é ¿¡·¯°¡³ªµµ ÇÁ·Î±×·¥Àº °è¼ÓÀûÀ¸·Î ¼öÇà µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. ÀÌ ¶§ ExceptionÀÇ Ã³¸®¸¦ Á¦´ë·Î ÇÏÁö ¾Ê´Â´Ù¸é ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº 1½Ã°£µµ ¹öƼ±â Èûµé¾îÁúÁöµµ ¸ð¸¨´Ï´Ù. ÇÊ¿äÇÒ ¶§ ÇÁ·Î±×·¥À» Àß Á¾·á½ÃŰ´Â °Íµµ Áß¿äÇÏÁö¸¸ Àý´ë ¿øÇϱâ Àü¿¡´Â »¸Áö ¾Ê´Â ÇÁ·Î±×·¥À» ¸¸µå´Â °Íµµ ½¬¿î ÀÏÀÌ ¾Æ´Õ´Ï´Ù.



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