À̹ø¿¡´Â 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.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ºÎ ÀúÀÚ:ÃÖ¿µ°ü |