|
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 moreij¸¯ÅÍ "..." (À»)¸¦ Æ÷ÇÔÇÑ ÇàÀÌ Á¸ÀçÇÏ´Â °Í¿¡ ÁÖ¸ñÇØ ÁÖ¼¼¿ä. ÀÌ·¯ÇÑ ÇàÀº ÀÌ ¿¹¿ÜÀÇ ½ºÅà Ʈ·¹À̽ºÀÇ ³ª¸ÓÁö°¡, ÀÌ ¿¹¿Ü¿¡ ÀÇÇØ ÀÏÀ¸ÄÑÁø ¿¹¿ÜÀÇ ½ºÅà Ʈ·¹À̽º¾Æ·¡·ÎºÎÅÍÀÇ ÇÁ·¹ÀÓ¼ö·Î ÀÏÄ¡ÇÏ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. Åë»óÀÇ ( ¡¸¿øÀÎÀÌ µÇ´Â ¿¹¿Ü¡¹¸¦ 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
- Ãâ·Â¿¡ »ç¿ëÇÏ´Â PrintStream
public void printStackTrace(PrintWriter s)
s
- Ãâ·Â¿¡ »ç¿ëÇÏ´Â PrintWriter
public 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.