¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦7Àå Exception  7.3.3 finallyÀÇ ¹Ì¹¦ÇÑ »ç¿ë  

 

7.3.3 finallyÀÇ ¹Ì¹¦ÇÑ »ç¿ë

 À̹ø¿¡´Â finallyÀÇ ½ÇÁ¦ÀûÀÎ »ç¿ë¹ý¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¸¸¾à Æø¹ß¹°À» ´Ù·ç´Â ÄÄÇ»ÅͰ¡ ÀÖ´Ù°í °¡Á¤ÇϰڽÀ´Ï´Ù. ÀÌ ÄÄÇ»Å͸¦ ´Ù·ç´Â »ç¿ëÀÚ´Â ´ÙÀ½°ú °°Àº ¼øÀ¸·Î ÀÛ¾÷À» ÇÒ °ÍÀÔ´Ï´Ù.

 

n        Àü¿øÀ» ÄÒ´Ù.

n        ÀÛ¾÷À» ÇÑ´Ù.

n        Àü¿øÀ» ²ö´Ù.

 

±×¸®°í ÀÌ·¯ÇÑ ÀÛ¾÷À» ÇÏ´ø µµÁß¿¡ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù¸é ¾î¶»°Ô ¿¡·¯Ã³¸®¸¦ ÇÒ °ÍÀΰ¡¿¡ ´ëÇÑ ¹æ¹ý·ÐÀ» ÇÁ·Î±×·¥À¸·Î ÀÛ¼ºÇØ º¸°Ú½À´Ï´Ù. ´ÙÀ½Àº Æø¹ß¹° ÄÄÇ»ÅÍ¿¡ ´ëÇÑ ÄÚµåÀÔ´Ï´Ù.

 

BombComputer.java(Æø¹ß¹° ÄÄÇ»ÅÍ)

public class BombComputer{

             boolean power = false;

             public void powerOn() {

                           power = true;

                           System.out.println("!!!!Æø¹ß¹°ÄÄÇ»ÅÍÀü¿ø ON.!!!!");

             }

             public void powerOff(){

                           power = false;

                           System.out.println("!!!!Æø¹ß¹°ÄÄÇ»ÅÍÀü¿ø OFF!!!!");

             }

             public void processJob() throws Exception{

                           //ÀÛ¾÷À» ó¸®

                           System.out.println("!!!! ÀÛ¾÷ó¸® 1 !!!!");

                           System.out.println("!!!! ÀÛ¾÷ó¸® 2 !!!!");

                           throw new Exception("@!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$");

             }

}

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

 

ù¹øÂ°ÀÇ °æ¿ì´Â ÀϹÝÀûÀ¸·Î Àü¿øÀ» ÄѰí ÀÛ¾÷À» ÇÏ°í ±×¸®°í Àü¿øÀ» ²ô´Â °úÁ¤¿¡¼­ Àüü¸¦ ¿¡·¯ 󸮸¦ Çϰí ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¿¡·¯°¡ ¹ß»ýÇßÀ» ¶§ ÄÄÇ»ÅÍÀÇ Àü¿øÀº ²¨ÁöÁö ¾Ê°í ¾Æ¸¶ Æø¹ßÇÒ °ÍÀÔ´Ï´Ù. ÀÚ¼¼È÷ °üÂûÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.

 

BombComputerUser1.java(try¿Í catch¸¸À» »ç¿ëÇÑ °æ¿ì)

public class BombComputerUser1 {

             public static void main(String args[]) {

                           BombComputer bc = new BombComputer();

                           try {

                                        bc.powerOn();

                                        bc.processJob();

                                        bc.powerOff();

                           } 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();

                           }

             }

}

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

 

C:\examples\7. Exception>java BombComputerUser1

!!!!Æø¹ß¹°ÄÄÇ»ÅÍÀü¿ø ON.!!!!

!!!! ÀÛ¾÷ó¸® 1 !!!!

!!!! ÀÛ¾÷ó¸® 2 !!!!

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

Á¤º¸:e.getMessage(): @!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$

Á¤º¸:e.toString(): java.lang.Exception: @!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$

Á¤º¸:e.printStackTrace():java.lang.Exception: @!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$

        at BombComputer.processJob(BombComputer.java:15)

        at BombComputerUser1.main(BombComputerUser1.java:8)

 

ÀÌ ¿¹Á¦¿¡¼­´Â  ´ÙÀ½°ú °°Àº ±¸¹®ÀÌ try¿¡ Á¸ÀçÇϰí À̵é Àüü¿¡ ´ëÇÏ¿© try¿Í catch¸¦ Àû¿ëÇϰí ÀÖ½À´Ï´Ù.

n        bc.powerOn();

n        bc.processJob();

n        bc.powerOff();

 

°á°úÀûÀ¸·Î ¸¶Áö¸· ¿¡·¯°¡ ³­ ¼ø°£¿¡ ÄÄÇ»ÅÍÀÇ Àü¿øÀº OFFµÇÁö ¾Ê°í ¹Ù·Î Æø¹ß·Î À̾îÁú °ÍÀÔ´Ï´Ù. ´ÙÀ½ °æ¿ì¸¦ »ìÆìº¸µµ·Ï ÇÏÁÒ.

 

 

public class BombComputerUser2 {

             public static void main(String args[]) {

                           BombComputer bc = new BombComputer();

                           try {

                                        bc.powerOn();

                                        bc.processJob();

                           } 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 {

                                        bc.powerOff();

                           }

             }

}

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

 

C:\examples\7. Exception>java BombComputerUser2

!!!!Æø¹ß¹°ÄÄÇ»ÅÍÀü¿ø ON.!!!!

!!!! ÀÛ¾÷ó¸® 1 !!!!

!!!! ÀÛ¾÷ó¸® 2 !!!!

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

Á¤º¸:e.getMessage(): @!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$

Á¤º¸:e.toString(): java.lang.Exception: @!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$

Á¤º¸:e.printStackTrace():java.lang.Exception: @!@#°ð Æø¹ßÇÕ´Ï´Ù.!@#$

        at BombComputer.processJob(BombComputer.java:15)

        at BombComputerUser2.main(BombComputerUser2.java:6)

!!!!Æø¹ß¹°ÄÄÇ»ÅÍÀü¿ø OFF!!!!

 

ÀÌ ¼öÁ¤µÈ ¿¹Á¦¿¡¼­´Â ¿¡·¯°¡ ³ªµç ³ªÁö ¾Êµç ÀÛ¾÷À» ³¡³»¸é ¹«Á¶°ÇÀûÀ¸·Î Àü¿øÀ» ²ô°í ÀÖ½À´Ï´Ù. ¹°·Ð °¡»óÀ¸·Î ÀÌ µÎ °æ¿ì¸¦ Å×½ºÆ® ÇØ º¸¾ÒÁö¸¸ ½ÇÁ¦ ¿ì¸®°¡ ÇÁ·Î±×·¥ ³»¿¡¼­ ¹üÇÏ´Â ¿À·ù´Â ¾ÆÁÖ ¸¹½À´Ï´Ù. µÇµµ·Ï À̸é BombComputerUser2.java¿¡¼­ »ç¿ëÇÏ´Â °Í°ú °°Àº ¾ÈÁ¤µÈ Äڵ带 ÀÛ¼ºÇÑ´Ù¸é ÇÁ·Î±×·¥ÀÇ ¸ÀÀº Ʋ·Á Áú °ÍÀÔ´Ï´Ù.



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