|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
| ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
| °³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå | ||||||||||
java.lang.Object | +--java.lang.Throwable
Throwable Ŭ·¡½º´Â Java ¾ð¾îÀÇ ¸ðµç ¿¡·¯¿Í ¿¹¿ÜÀÇ ½´ÆÛ Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½º (¶Ç´Â ±× ¼ºê Ŭ·¡½º ÁßÀÇ 1 °³)ÀÇ ÀνºÅϽºÀÎ ¿ÀºêÁ§Æ®¸¸ÀÌ Java °¡»ó ¸Ó½Å¿¡ ÀÇÇØ ½½·Î¿ì µÇ´ÂÁö Java ÀÇ throw ±¸¹®¿¡ ÀÇÇØ ½½·Î¿ì µË´Ï´Ù. ¶È°°ÀÌ, ÀÌ Å¬·¡½º ¶Ç´Â ±× ¼ºê Ŭ·¡½º ÁßÀÇ 1 kr¸¸ÀÌ catch ÀýÀÇ ÀμöÀÇ ÇüÅ·ΠÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Åë»ó,Error ¹× Exception ÀÇ 2 °³ÀÇ ¼ºê Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ¿¹¿ÜÀûÀÎ »óȲÀÌ ¹ß»ýÇÑ °ÍÀ» ³ªÅ¸³»±â À§Çؼ(¶§¹®¿¡) »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ÀνºÅϽº´Â Åë»ó, °ü·ÃÇÏ´Â Á¤º¸ (½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͵î)¸¦ ÀúÀåÇϱâ À§Çؼ, ¿¹¿ÜÀûÀÇ »óȲ¿¡ µû¶ó »õ·Ó°Ô ÀÛ¼ºµË´Ï´Ù.
½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿¡´Â ÀÛ¼º½ÃÀÇ ±× threadÀÇ ½ÇÇà ½ºÅÃÀÇ snapshot°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ Å¬·¡½º¿¡´Â ¿¡·¯¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ ³ªÅ¸³»´Â ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀεµ Æ÷ÇԵ˴ϴÙ. ÃÖÁ¾ÀûÀ¸·Î, À̰ÍÀº ¡¸¿øÀΡ¹ (ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ½½·Î¿ì¸¦ ÀÏÀ¸Å² ´Ù¸¥ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®)À» Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿øÀÎ ±â´ÉÀº ¸±¸®½º 1.4 ÀÇ ½Å±â´ÉÀÔ´Ï´Ù. À̰ÍÀº ¿øÀÎ ÀÚü°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇØ ¿¹¿ÜÀÇ ¿¬¼â¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ±â (À§ÇØ)¶§¹®¿¡, ¡¸Ã¼ÀÎ µÈ ¿¹¿Ü¡¹±â´ÉÀ̶ó°íµµ ºÒ¸³´Ï´Ù.
½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇÒ ¼ö ÀÖ´Â 1 °³ÀÇ ÀÌÀ¯·Î¼ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ½½·Î¿ì Çϴ Ŭ·¡½º°¡ ÇÏÀ§ ·¹À̾î Ãß»óÈ À§¿¡ ±¸ÃàµÇ°í ÀÖ´Â °ÍÀÌ µé°í ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, »óÀ§ ·¹À̾ ´ëÇÑ Á¶ÀÛÀÌ ½ÇÆÐÇÏ´Â °ÍÀº ÇÏÀ§ ·¹À̾¼ÀÇ Á¶ÀÛÀÌ ½ÇÆÐÇϱâ (À§ÇØ)¶§¹®¿¡ÀÔ´Ï´Ù. ÇÏÀ§ ·¹À̾ ÀÇÇØ ½½·Î¿ì µÇ´Â ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ¿ÜºÎ¿¡ ¼Û½ÅÇÏ´Â °ÍÀº ºÎÀûÀýÇÑ ¼³°è ¹æ¹ýÀÔ´Ï´Ù. À̰ÍÀº Åë»ó, »óÀ§ ·¹À̾ ÀÇÇØ Á¦°øµÇ´Â Ãß»óÈ ±â´É°ú´Â °ü°è°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. °Ô´Ù°¡ ÀÌ·¯ÇÑ Á¶ÀÛÀ» ½Ç½ÃÇϸé, »óÀ§ ·¹À̾îÀÇ API ¸¦ ±¸ÇöÀÇ »ó¼¼ÇÏ°Ô ¿¬°á½ÃÄÑ ¹ö¸®±â (À§ÇØ)¶§¹®¿¡, ÇÏÀ§ ·¹À̾îÀÇ ¿¹¿Ü°¡ üũ ¿¹¿Ü¶ó°í º¸¿©Á® ¹ö¸³´Ï´Ù. ¡¸·¦ µÈ ¿¹¿Ü¡¹ (¿øÀÎÀ» Æ÷ÇÔÇÑ ¿¹¿Ü)À» ½½·Î¿ì Çϸé(ÀÚ), ÀÌ·¯ÇÑ °áÁ¡¿¡ Á¢ÇÏÁö ¾Ê°í »óÀ§ ·¹À̾ ÀåÇØÀÇ »ó¼¼¸¦ È£ÃâÇØ Ãø¿¡ Åë½ÅÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ¶§¹®¿¡, »óÀ§ ·¹À̾îÀÇ ±¸Çö (ƯÈ÷ ¸Þ¼Òµå¿¡ ÀÇÇØ ½½·Î¿ì µÇ´Â ¿¹¿Ü¼¼Æ®)À» API ¸¦ º¯°æÇÏÁö ¾Ê°í À¯¿¬ÇÏ°Ô º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇÏ´Â 2 ¹øÂ°ÀÇ ÀÌÀ¯´Â ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ½½·Î¿ì ÇÏ´Â ¸Þ¼Òµå°¡, ¿øÀÎÀ» Á÷Á¢ ½½·Î¿ì ÇÏ´Â °ÍÀ» ¸Þ¼Òµå¿¡ Çã°¡ÇÏÁö ¾Ê´Â ¹ü¿ë ÀÎÅÍÆäÀ̽º¿¡ ÁذÅÇÒ Çʿ䰡 ÀÖ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, Áö¼Ó ÄÝ·º¼ÇÀÌ Collection ÀÎÅÍÆäÀ̽º¿¡ ÁذÅÇØ, ±× Áö¼Ó¼ºÀÌ java.io ÀÇ »óÀ§¿¡ ±¸ÇöµÇ´Â °æ¿ì¸¦ »ý°¢ÇսôÙ. put ¸Þ¼ÒµåÀÇ ³»ºÎ´Â IOException ¸¦ ½½·Î¿ì °¡´ÉÇÏ´Ù¶ó°í ÇÕ´Ï´Ù. ÀÌ °æ¿ì, ÀûÀýÇÑ Ã¼Å©µÇÁö ¾Ê´Â ¿¹¿ÜÀÇ IOException ¸¦ ·¦ ÇÏ´Â °ÍÀ¸·Î½á, ±¸ÇöÀº Collection ÀÎÅÍÆäÀ̽º¿¡ ÁذÅÇϸé¼,IOException ÀÇ »ó¼¼¸¦ È£ÃâÇØ Ãø¿¡ ÅëÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö¼Ó ÄÝ·º¼ÇÀÇ »ç¾ç¿¡, ÀÌ·± Á¾·ùÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì °¡´ÉÇÏ´Ù¶ó°í ÇÏ´Â °ÍÀÌ ³ªÅ¸³ª°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
¿øÀÎÀº 2 °³ÀÇ ¹æ¹ýÀ¸·Î ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿¡ °ü·ÃÁöÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. 1 krÀº ¿øÀÎÀ» Àμö·Î¼ ÃëÇÏ´Â constructor¸¦ »ç¿ëÇÏ´Â ¹æ¹ý, ÀÌÁ¦(¹ú½á) 1 krÀº initCause(Throwable) ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿øÀÎÀÌ °ü·ÃÁþ°í¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â ½Å±Ô ½½·Î¿ì °¡´É Ŭ·¡½º´Â ¿øÀÎÀ» ¹Þ´Â constructor¸¦ Á¦°øÇØ, ¿øÀÎÀ» ¹Þ´Â ¸î°³ÀÇ Throwable constructor ¿¡ (Åë»ó °£Á¢ÀûÀ¸·Î) delegate ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
try {
lowLevelOp();
} catch LowLevelException(le) {
throw new HighLevelException(le); // Chaining-aware constructor
}
initCause ¸Þ¼Òµå´Â public À̱â (À§ÇØ)¶§¹®¿¡, ¿øÀÎÀ» ÀÓÀÇÀÇ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿¡ °ü·ÃÁþ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. À̰ÍÀº ±¸ÇöÀÌ ¿¹¿Ü üÀÎ ±â±¸ÀÇ Throwable ¿¡ÀÇ Ãß°¡¿¡ ¼±ÇàÇÏ´Â ¡¸À¯»ê ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¡¹¿©µµ µé¾î¸ÂÀ¾´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
try {
lowLevelOp();
} catch LowLevelException(le) {
throw (HighLevelException)
new HighLevelException(). initCause(le); // Legacy constructor
}
¸±¸®½º 1.4 ÀÌÀü¿¡´Â ºñÇ¥ÁØÀÇ µ¶ÀÚ ¿¹¿Ü üÀÎ ±â±¸ (ExceptionInInitializerError ,ClassNotFoundException ,UndeclaredThrowableException ,InvocationTargetException ,WriteAbortedException ,PrivilegedActionException ,PrinterIOException , ¹× RemoteException )¸¦ º¸°ü À¯ÁöÇÏ´Â ´Ù¼öÀÇ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®°¡ Á¸ÀçÇϰí ÀÖ¾ú½À´Ï´Ù. ¸±¸®½º 1.4 ¿¡¼´Â ÀÌ·¯ÇÑ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®´Â ¸ðµÎ, ȣȯ¼ºÀ» À§Çؼ(¶§¹®¿¡) ¡¸Á¾·¡ÀÇ¡¹¿¬¼â ±â±¸ÀÇ ±¸ÇöÀ» À¯ÁöÇϸé¼, Ç¥ÁØÀÇ ¿¹¿Ü ¿¬¼â ±â±¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô °³·®µÇ°í ÀÖ½À´Ï´Ù.
°Ô´Ù°¡ ¸±¸®½º 1.4 ¿¡¼´Â ´Ù¼öÀÇ ¹ü¿ë Throwable Ŭ·¡½º (Exception ,RuntimeException ,Error µî)°¡, ¿øÀÎÀ» ÃëÇÏ´Â constructor ¿¡ ¸ÂÃß¾î °³·®µÇ°í ÀÖ½À´Ï´Ù. initCause ¸Þ¼Òµå°¡ ¹ú½á Á¸ÀçÇϰí ÀÖ±â (À§ÇØ)¶§¹®¿¡, À̰ÍÀº ¾ö¹ÐÇϰԴ Çʼö¶ó°í ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù¸¸, ¿øÀÎÀ» ÃëÇÏ´Â constructor ¿¡ÀÇ delegateÀ» ½Ç½ÃÇÏ´Â °Íº¸´Ù °£ÆíÇϰí Ç¥Çö·ÂÀÌ ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù.
Á¾·¡,Throwable Ŭ·¡½º ¹× ±× ¼ºê Ŭ·¡½º´Â 2 °³ÀÇ constructor¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. 1 krÀº Àμö¸¦ ÃëÇÏÁö ¾Ê°í ÀÌÁ¦(¹ú½á) 1 krÀº »ó¼¼ ¸Þ¼¼ÁöÀÇ »ý¼º¿¡ »ç¿ë °¡´ÉÇÑ String Àμö¸¦ ÃëÇÕ´Ï´Ù. ¶Ç, °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø ¿øÀÎÀ» º¸°ü À¯Áö °¡´ÉÇÑ ÀÌ·¯ÇÑ ¼ºê Ŭ·¡½º´Â °Ô´Ù°¡ 2 °³ÀÇ constructor¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. 1 krÀº Throwable (¿øÀÎ)¸¦ ÃëÇØ, ÀÌÁ¦(¹ú½á) 1 krÀº String (»ó¼¼ ¸Þ¼¼Áö) ¹× Throwable (¿øÀÎ)¸¦ ÃëÇÕ´Ï´Ù.
¶Ç, ¸±¸®½º 1.4 ¿¡¼´Â getStackTrace() ¸Þ¼Òµåµµ µµÀԵǾú½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé(ÀÚ), Áö±Ý±îÁö printStackTrace() ¸Þ¼Òµå¸¦ »ç¿ëÇØ ÅØ½ºÆ® Çü½Ä¿¡¼ ¹Û¿¡ ÀÌ¿ëÇÒ ¼ö ¾ø¾ú´ø ½ºÅà Ʈ·¹À̽º Á¤º¸¿¡, ÇÁ·Î±×·¥È µÈ ¾×¼¼½º¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¤º¸°¡ ÀÌ Å¬·¡½ºÀÇ ¡¸Á÷·ÄÈ Ç¥Çö¡¹¿¡ Ãß°¡µÇ¾ú±â ¶§¹®¿¡,getStackTrace ¹× printStackTrace °¡ Á÷·ÄÈ º¹¿ø¿¡ ÀÇÇØ ÃëµæµÈ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼ ÀûÁ¤ÇÏ°Ô ±â´ÉÇÕ´Ï´Ù.
| »ý¼ºÀÚÀÇ °³¿ä | |
Throwable ()
»ó¼¼ ¸Þ¼¼Áö¿¡ null ¸¦ »ç¿ëÇØ, ½Å±Ô ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
Throwable (String message)
ÁöÁ¤µÈ »ó¼¼ ¸Þ¼¼Áö¸¦ »ç¿ëÇØ, ½Å±Ô ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
Throwable (String message,
Throwable cause)
ÁöÁ¤µÈ »ó¼¼ ¸Þ¼¼Áö ¹× ¿øÀÎÀ» »ç¿ëÇØ ½Å±Ô ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
Throwable (Throwable cause)
(cause==null ? |
|
| ¸Þ¼ÒµåÀÇ °³¿ä | |
Throwable |
fillInStackTrace ()
½ÇÇà ½ºÅà Ʈ·¹À̽º¸¦ ¹¯½À´Ï´Ù. |
Throwable |
getCause ()
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ¿øÀÎ ¶Ç´Â null (¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ¹ÌÁöÀÇ °æ¿ì)¸¦ µ¹·ÁÁÝ´Ï´Ù. |
String |
getLocalizedMessage ()
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ, Áö¿ª ´ëÀÀµÈ ±â¼úÀ» ÀÛ¼ºÇÕ´Ï´Ù. |
String |
getMessage ()
ÀÌ Throwable ¿ÀºêÁ§Æ®ÀÇ »ó¼¼ ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. |
StackTraceElement [] |
getStackTrace ()
printStackTrace() ¿¡ ÀÇÇØ Ãâ·ÂµÈ ½ºÅà Ʈ·¹À̽º Á¤º¸¿¡ÀÇ, ÇÁ·Î±×·¥È µÈ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
Throwable |
initCause (Throwable cause)
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ¡¸¿øÀΡ¹À», ÁöÁ¤µÈ °ª¿¡ ÃʱâÈÇÕ´Ï´Ù. |
void |
printStackTrace ()
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ® ¹× ±× ¹é Æ®·¹À̽º¸¦ Ç¥ÁØ ¿¡·¯ ½ºÆ®¸²¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
void |
printStackTrace (PrintStream s)
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿Í ±× ¹é Æ®·¹À̽º°¡ ÁöÁ¤µÈ Àμ⠽ºÆ®¸²¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
void |
printStackTrace (PrintWriter s)
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿Í ±× ¹é Æ®·¹À̽º°¡ ÁöÁ¤µÈ ÇÁ¸°Æ® ¶óÀÌÅÍ¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
void |
setStackTrace (StackTraceElement [] stackTrace)
getStackTrace() ¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁ®printStackTrace() ¹× °ü·ÃÇÏ´Â ¸Þ¼Òµå¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ½ºÅà Ʈ·¹À̽º ¿ä¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
String |
toString ()
ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ÂªÀº ±â¼úÀ» µ¹·ÁÁÝ´Ï´Ù. |
| Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
| »ý¼ºÀÚÀÇ »ó¼¼ |
public Throwable()
null ¸¦ »ç¿ëÇØ, ½Å±Ô ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ±¸ÃàÇÕ´Ï´Ù. ¿øÀÎÀº ÃʱâȵÇÁö ¾Ê°í ±× ÈÄ initCause(java.lang.Throwable) ¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÃʱâÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
fillInStackTrace() ¸Þ¼Òµå¸¦ È£ÃâÇØ, ½Å±Ô ÀÛ¼ºµÈ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
public Throwable(String message)
initCause(java.lang.Throwable) ¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÃʱâÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
fillInStackTrace() ¸Þ¼Òµå¸¦ È£ÃâÇØ, ½Å±Ô ÀÛ¼ºµÈ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
message - »ó¼¼ ¸Þ¼¼Áö. »ó¼¼ ¸Þ¼¼Áö´Â getMessage() ¸Þ¼Òµå¿¡ ÀÇÇÑ Ãëµæ¿ëÀ¸·Î º¸Á¸µÈ´Ù
public Throwable(String message,
Throwable cause)
cause ¿Í °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø »ó¼¼ ¸Þ¼¼Áö°¡, ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ »ó¼¼ ¸Þ¼¼Áö¿¡ ÀÚµ¿ÀûÀ¸·Î ÅëÇÕµÉ °ÍÀº ¾ø½À´Ï´Ù.
fillInStackTrace() ¸Þ¼Òµå¸¦ È£ÃâÇØ, ½Å±Ô ÀÛ¼ºµÈ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
message - »ó¼¼ ¸Þ¼¼Áö (getMessage() ¸Þ¼Òµå¿¡ ÀÇÇÑ Ãëµæ¿ëÀ¸·Î º¸Á¸µÈ´Ù)cause - ¿øÀÎ (getCause() ¸Þ¼Òµå¿¡ ÀÇÇÑ Ãëµæ¿ëÀ¸·Î º¸Á¸µÈ´Ù). null Ä¡°¡ Çã°¡µÈ´Ù. null Ä¡´Â ¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ¹ÌÁöÀÎ °ÍÀ» ³ªÅ¸³»´Âpublic Throwable(Throwable cause)
PrivilegedActionException µî)ÀÇ ·¡ÆÛÀÎ °æ¿ì¿¡ À¯¿ëÇÕ´Ï´Ù.
fillInStackTrace() ¸Þ¼Òµå¸¦ È£ÃâÇØ, ½Å±Ô ÀÛ¼ºµÈ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
cause - ¿øÀÎ (getCause() ¸Þ¼Òµå¿¡ ÀÇÇÑ Ãëµæ¿ëÀ¸·Î º¸Á¸µÈ´Ù). null Ä¡°¡ Çã°¡µÈ´Ù. null Ä¡´Â ¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ¹ÌÁöÀÎ °ÍÀ» ³ªÅ¸³»´Â| ¸Þ¼ÒµåÀÇ »ó¼¼ |
public String getMessage()
public String getLocalizedMessage()
getMessage() ¿Í °°Àº °á°ú°¡ µ¹·ÁÁÖ¾îÁý´Ï´Ù.
public Throwable getCause()
null (¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ¹ÌÁöÀÇ °æ¿ì)¸¦ µ¹·ÁÁÝ´Ï´Ù. ¿øÀÎÀ̶õ, ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ½½·Î¿ì¸¦ ¹ß»ý½ÃŲ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.
ÀÌ ±¸ÇöÀº Throwable ¸¦ ¿ä±¸ÇÏ´Â ¸î°³ÀÇ constructor °æÀ¯·Î Á¦°øµÈ ¿øÀÎ, ¶Ç´Â initCause(Throwable) ¸Þ¼Òµå¸¦ »ç¿ëÇØ ÀÛ¼º ÈÄ·Î ¼³Á¤µÈ ¿øÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. Åë»ó, ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù¸¸, ¼ºê Ŭ·¡½º´Â ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, ´Ù¸¥ ¾î¶°ÇÑ ¹æ¹ýÀ¸·Î ¼³Á¤µÈ ¿øÀÎÀ» µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº üÀÎ µÈ ¿¹¿ÜÀÇ Throwable ¿¡ÀÇ Ãß°¡Àü¿¡ ½ÇÇàµÇ´Â ¡¸À¯»ê ¿¬¼â ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¡¹ÀÇ °æ¿ì¿¡ ÀûÀýÇÑ µ¿ÀÛÀÔ´Ï´Ù. PrintStackTrace ¸Þ¼ÒµåÀÇ ¾î´ÀÂÊÀ̵çÀ» ¿À¹ö¶óÀ̵å(override) ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â ¸ðµÎ getCause ¸Þ¼Òµå¸¦ È£ÃâÇØ, ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ¿øÀÎÀ» ÆÇº°ÇÕ´Ï´Ù.
null (¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ¹ÌÁöÀÇ °æ¿ì)public Throwable initCause(Throwable cause)
ÀÌ ¸Þ¼Òµå´Â 1 ȸ¸¸ È£ÃâÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Åë»ó, ÀÌ ¸Þ¼Òµå´Â constructor ³»ºÎ·ÎºÎÅÍ ºÒ·Á °¡´ÂÁö ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼º ÈÄ °ð¹Ù·Î ºÒ·Á °©´Ï´Ù. Throwable(Throwable) ¶Ç´Â Throwable(String, Throwable) ¸¦ »ç¿ëÇØ ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇßÀ» °æ¿ì, ÀÌ ¸Þ¼Òµå¸¦ Çѹøµµ È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù.
cause - ¿øÀÎ (getCause() ¸Þ¼Òµå¿¡ ÀÇÇÑ Ãëµæ¿ëÀ¸·Î º¸Á¸µÈ´Ù). null Ä¡°¡ Çã°¡µÈ´Ù. null Ä¡´Â ¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ¹ÌÁöÀÎ °ÍÀ» ³ªÅ¸³½´Ù
Throwable ÀνºÅϽº¿¡ÀÇ ÂüÁ¶
IllegalArgumentException - cause °¡ ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÎ °æ¿ì (½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®´Â ½º½º·ÎÀÇ ¿øÀÎÀÌ µÇ´Â °ÍÀº ÇÒ ¼ö ¾ø´Ù)
IllegalStateException - ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®°¡ Throwable(Throwable) ¶Ç´Â Throwable(String, Throwable) ¸¦ »ç¿ëÇØ ÀÛ¼ºµÇ¾ú´ÂÁö ÀÌ ¸Þ¼Òµå°¡ ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼ È£ÃâÀ» ½ÇÇàÀÌ ³¡³ »óÅÂÀÎ °æ¿ìpublic String toString()
Throwable ¿ÀºêÁ§Æ®°¡ ºñ null ÀÇ »ó¼¼ ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀÎÀ» »ç¿ëÇØ ÀÛ¼ºµÇ¾úÀ» °æ¿ì, °á°ú´Â ´ÙÀ½ÀÇ 3 °³ÀÇ Ä³¸¯ÅÍ ¶óÀÎÀ» ¿¬°áÇÑ °ÍÀÌ µË´Ï´Ù.
getMessage() ¸Þ¼ÒµåÀÇ °á°ú
Throwable ¿ÀºêÁ§Æ®°¡ null ÀÇ »ó¼¼ ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀÎÀ» »ç¿ëÇØ ÀÛ¼ºµÇ¾úÀ» °æ¿ì´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ½ÇÁ¦ÀÇ Å¬·¡½º¸íÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù.
Object ³»ÀÇ toString public void printStackTrace()
System.err ÇʵåÀÇ °ªÀÎ ¿¡·¯ Ãâ·Â ½ºÆ®¸²À¸·Î Ãâ·ÂÇÕ´Ï´Ù. Ãâ·ÂÀÇ ¼±µÎÇà¿¡´Â ÀÌ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ toString() ¸Þ¼ÒµåÀÇ °á°ú°¡ Æ÷ÇԵ˴ϴÙ. ³ª¸ÓÁöÀÇ ÇàÀº ÀÌÀü¿¡ fillInStackTrace() ¸Þ¼Òµå¿¡ ÀÇÇØ ±â·ÏµÈ µ¥ÀÌÅ͸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ Á¤º¸ÀÇ ¼½ÄÀº ±¸Çö¿¡ ÀÇÇØ ´Ù¼Ò ´Ù¸¨´Ï´Ù¸¸, ÀüÇüÀûÀÎ ¼½ÄÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
at MyClass.crunch(MyClass.java:6)
at MyClass.main(MyClass.java:3)
ÀÌ ¿¹´Â ´ÙÀ½ÀÇ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â °Í¿¡ ÀÇÇØ ÀÛ¼ºµÈ °ÍÀÔ´Ï´Ù.
class MyClass {
public static void main(String[] args) {
crunch(null);
}
static void crunch(int[] a) {
mash(a);
}
static void mash(int[] b) {
System.out.println(b[0]);
}
}
ÃʱâÈµÈ ºñ null ÀÇ ¿øÀÎÀ» º¸°ü À¯ÁöÇÏ´Â ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ¹é Æ®·¹À̽º¿¡´Â Åë»ó, ¿øÀÎÀÇ ¹é Æ®·¹À̽º°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ Á¤º¸ÀÇ ¼½ÄÀº ±¸Çö¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù¸¸, ÀüÇüÀûÀÎ ¼½ÄÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
HighLevelException: MidLevelException: LowLevelException
at Junk.a(Junk.java:13)
at Junk.main(Junk.java:4)
Caused by: MidLevelException: LowLevelException
at Junk.c(Junk.java:23)
at Junk.b(Junk.java:17)
at Junk.a(Junk.java:11)
... 1 more
Caused by: LowLevelException
at Junk.e(Junk.java:30)
at Junk.d(Junk.java:27)
at Junk.c(Junk.java:21)
... 3 more
ij¸¯ÅÍ "..." (À»)¸¦ Æ÷ÇÔÇÑ ÇàÀÌ Á¸ÀçÇÏ´Â °Í¿¡ ÁÖ¸ñÇØ ÁÖ¼¼¿ä. ÀÌ·¯ÇÑ ÇàÀº ÀÌ ¿¹¿ÜÀÇ ½ºÅà Ʈ·¹À̽ºÀÇ ³ª¸ÓÁö°¡, ÀÌ ¿¹¿Ü¿¡ ÀÇÇØ ÀÏÀ¸ÄÑÁø ¿¹¿ÜÀÇ ½ºÅà Ʈ·¹À̽º¾Æ·¡·ÎºÎÅÍÀÇ ÇÁ·¹ÀÓ¼ö·Î ÀÏÄ¡ÇÏ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. Åë»óÀÇ ( ¡¸¿øÀÎÀÌ µÇ´Â ¿¹¿Ü¡¹¸¦ ijġ ÇÏ´Â °Í°ú °°Àº ¸Þ¼Òµå·ÎºÎÅÍ ·¦ µÈ ¿¹¿Ü°¡ ½½·Î¿ì µÈ´Ù) °æ¿ì, ÀÌ ´ÜÃàÇüÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î, Ãâ·ÂÀÇ ±æÀ̸¦ Å«ÆøÀ¸·Î ´ÜÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹´Â ´ÙÀ½ÀÇ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â °ÍÀ¸·Î »ý¼ºµË´Ï´Ù.
public class Junk {
public static void main(String args[]) {
try {
a();
} catch(HighLevelException e) {
e.printStackTrace();
}
}
static void a() throws HighLevelException {
try {
b();
} catch(MidLevelException e) {
throw new HighLevelException(e);
}
}
static void b() throws MidLevelException {
c();
}
static void c() throws MidLevelException {
try {
d();
} catch(LowLevelException e) {
throw new MidLevelException(e);
}
}
static void d() throws LowLevelException {
e();
}
static void e() throws LowLevelException {
throw new LowLevelException();
}
}
class HighLevelException extends Exception {
HighLevelException(Throwable cause) { super(cause); }
}
class MidLevelException extends Exception {
MidLevelException(Throwable cause) { super(cause); }
}
class LowLevelException extends Exception {
}
public void printStackTrace(PrintStream s)
s - Ãâ·Â¿¡ »ç¿ëÇÏ´Â PrintStreampublic void printStackTrace(PrintWriter s)
s - Ãâ·Â¿¡ »ç¿ëÇÏ´Â PrintWriterpublic Throwable fillInStackTrace()
Throwable ¿ÀºêÁ§Æ®³»¿¡ ±â·ÏÇÕ´Ï´Ù.
Throwable ÀνºÅϽº¿¡ÀÇ ÂüÁ¶printStackTrace() public StackTraceElement [] getStackTrace()
printStackTrace() ¿¡ ÀÇÇØ Ãâ·ÂµÈ ½ºÅà Ʈ·¹À̽º Á¤º¸¿¡ÀÇ, ÇÁ·Î±×·¥È µÈ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. ½ºÅà Ʈ·¹À̽º ¿ä¼Ò ( °¢ ¿ä¼Ò´Â 1 °³ÀÇ ½ºÅà ÇÁ·¹ÀÓÀ» ³ªÅ¸³½´Ù)ÀÇ ¹è¿À» µ¹·ÁÁÝ´Ï´Ù. ¹è¿ÀÇ Á¦·Î ¹øÂ°ÀÇ ¿ä¼Ò (¹è¿ÀÇ ±æÀ̰¡ Á¦·Î°¡ ¾Æ´Ñ °æ¿ì)´Â ½ºÅÃÀÇ ¼±µÎ (ÀÏ·ÃÀÇ ¸Þ¼Òµå È£ÃâÀÇ ÃÖÈÄ)¸¦ ³ªÅ¸³À´Ï´Ù. Åë»ó, À̰ÍÀº ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®°¡ ÀÛ¼º ¹× ½½·Î¿ì µÈ Æ÷ÀÎÆ®ÀÔ´Ï´Ù. ¹è¿ÀÇ ¸¶Áö¸· ¿ä¼Ò (¹è¿ÀÇ ±æÀ̰¡ Á¦·Î°¡ ¾Æ´Ñ °æ¿ì)´Â ½ºÅÃÀÇ ¸»¹Ì (ÀÏ·ÃÀÇ ¸Þ¼Òµå È£ÃâÀÇ ÃÖÃÊ)¸¦ ³ªÅ¸³À´Ï´Ù.
°¡»ó ¸Ó½Å¾È¿¡´Â ƯÁ¤ÀÇ »óȲÇÏ·Î ½ºÅà Ʈ·¹À̽º·ÎºÎÅÍ 1 °³ ÀÌ»óÀÇ ½ºÅà ÇÁ·¹ÀÓÀ» »ý·« ÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ±Ø´ÜÀûÀÎ °æ¿ì, ÀÌ ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®¿¡ °üÇÑ ½ºÅà Ʈ·¹À̽º Á¤º¸¸¦ º¸°ü À¯ÁöÇÏÁö ¾Ê´Â °¡»ó ¸Ó½ÅÀÌ, ÀÌ ¸Þ¼Òµå·ÎºÎÅÍ ±æÀÌ Á¦·ÎÀÇ ¹è¿À» µ¹·ÁÁÖ´Â °ÍÀÌ Çã°¡µË´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â ¹è¿Àº printStackTrace ¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ÇÁ·¹ÀÓ ¸¶´Ù 1 °³ÀÇ ¿ä¼Ò¸¦ ÀúÀåÇÕ´Ï´Ù.
public void setStackTrace(StackTraceElement [] stackTrace)
getStackTrace() ¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁ®printStackTrace() ¹× °ü·ÃÇÏ´Â ¸Þ¼Òµå¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ½ºÅà Ʈ·¹À̽º ¿ä¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â RPC üÁ¦ ¹× ´Ù¸¥ °í¼º´É ½Ã½ºÅÛ¿¡¼ÀÇ »ç¿ëÀ» ¸ñÀûÀ¸·Î ¼³°èµÇ°í ÀÖ¾î Ŭ¶óÀÌ¾ðÆ®°¡ µðÆúÆ® ½ºÅà Ʈ·¹À̽º¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. µðÆúÆ® ½ºÅà Ʈ·¹À̽º´Â ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®ÀÇ ±¸Ãà½Ã¿¡ fillInStackTrace() ¿¡ ÀÇÇØ »ý¼ºµÇ´ÂÁö ½½·Î¿ì °¡´É ¿ÀºêÁ§Æ®°¡ Á÷·ÄÈ ½ºÆ®¸²À¸·ÎºÎÅÍ ÀоîµéÀÏ ¶§¿¡ Á÷·ÄÈ º¹¿øµË´Ï´Ù.
stackTrace - ÀÌ Throwable ¿Í °ü·ÃÁþ´Â ½ºÅà Ʈ·¹À̽º ¿ä¼Ò. ÁöÁ¤µÈ ¹è¿Àº ÀÌ È£Ãâ¿¡ ÀÇÇØ Ä«ÇǵȴÙ. ¸Þ¼Òµå È£ÃâÀÇ º¹±Í ÈÄ¿¡, ÁöÁ¤µÈ ¹è¿³»¿¡¼ ÇàÇØÁø º¯°æÀº Throwable ÀÇ ½ºÅà Ʈ·¹À̽º¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù
NullPointerException - stackTrace °¡ null ÀÇ °æ¿ì, ¶Ç´Â stackTrace ÀÇ ¸î°³ÀÇ ¿ä¼Ò°¡ null ÀÇ °æ¿ì
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
| ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
| °³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå | ||||||||||
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.