|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
java.lang.Objectjava.lang.Throwable
public class Throwable
Throwable
Ŭ·¡½º´Â Java ¾ð¾îÀÇ ¸ðµç ¿¡·¯¿Í ¿¹¿ÜÀÇ ½´ÆÛ Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½º (¶Ç´Â ±× ¼ºê Ŭ·¡½º ÁßÀÇ 1°³)ÀÇ ÀνºÅϽºÀÎ °´Ã¼¸¸ÀÌ Java °¡»ó ¸Ó½Å¿¡ ÀÇÇØ ¹ß»ýµÇ´Â Áö, Java
throw
±¸¹®¿¡ ÀÇÇØ ¹ß»ý µË´Ï´Ù. ¶È°°ÀÌ, ÀÌ Å¬·¡½º ¶Ç´Â ±× ¼ºê Ŭ·¡½º ÁßÀÇ 1°³
¸¸ÀÌ catch
ÀýÀÇ ÀμöÀÇ ÇüÅ·ΠÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
º¸Åë, Error
¹× Exception
2°³ÀÇ ¼ºê Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ¿¹¿ÜÀûÀÎ »óȲÀÌ ¹ß»ýÇÑ °ÍÀ» ³ªÅ¸³»±â À§Çؼ »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ÀνºÅϽº´Â º¸Åë, °ü·ÃµÈ Á¤º¸ (½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͵î)¸¦ Æ÷ÇÔÇϱâ À§Çؼ
¿¹¿ÜÀûÀÎ »óȲ¿¡ µû¶ó »õ·Ó°Ô ÀÛ¼ºµË´Ï´Ù.
Throw °¡´É °´Ã¼¿¡´Â ÀÛ¼º½ÃÀÇ ±× threadÀÇ ½ÇÇà ½ºÅÃÀÇ snapshot°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ Å¬·¡½º¿¡´Â ¿¡·¯¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ ³ªÅ¸³»´Â ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀεµ Æ÷ÇԵ˴ϴÙ. ÃÖÁ¾ÀûÀ¸·Î À̰ÍÀº ¡¸¿øÀΡ¹ (ÀÌ Throw °¡´É °´Ã¼ÀÇ Throw¸¦ ÀÏÀ¸Å² ´Ù¸¥ Throw °¡´É °´Ã¼)À» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù . ¿øÀÎ ±â´ÉÀº ¸±¸®½º 1.4 ½Å±â´ÉÀÔ´Ï´Ù. À̰ÍÀº ¿øÀÎ ÀÚü°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇØ ¿¹¿ÜÀÇ ¿¬¼â¸¦ ÀÛ¼ºÇÒ ¼ö Àֱ⠶§¹®¿¡ ¡¸Ã¼ÀÎ µÈ ¿¹¿Ü¡¹±â´ÉÀ̶ó°íµµ ºÒ¸³´Ï´Ù.
Throw °¡´É °´Ã¼°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇÒ ¼ö ÀÖ´Â 1°³ÀÇ ÀÌÀ¯·Î¼ Throw °¡´É °´Ã¼¸¦ Throw Çϴ Ŭ·¡½º°¡ ÇÏÀ§ ·¹À̾î Ãß»óÈ À§¿¡ ±¸ÃàµÇ°í ÀÖ´Â °ÍÀÌ µé°í ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡ »óÀ§ ·¹À̾ ´ëÇÑ Á¶ÀÛÀÌ ½ÇÆÐÇÏ´Â °ÍÀº ÇÏÀ§ ·¹À̾¼ÀÇ Á¶ÀÛÀÌ ½ÇÆÐÇϱ⠶§¹®¿¡ÀÔ´Ï´Ù. ÇÏÀ§ ·¹À̾ ÀÇÇØ ¹ß»ýµÇ´Â Throw °¡´É °´Ã¼¸¦ ¿ÜºÎ¿¡ ¼Û½ÅÇÏ´Â °ÍÀº ºÎÀûÀýÇÑ ¼³°è ¹æ¹ýÀÔ´Ï´Ù. À̰ÍÀº º¸Åë, »óÀ§ ·¹À̾ ÀÇÇØ Á¦°øµÇ´Â Ãß»óÈ ±â´É°ú´Â °ü°è°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. °Ô´Ù°¡ ÀÌ·¯ÇÑ Á¶ÀÛÀ» ½Ç½ÃÇϸé, »óÀ§ ·¹À̾îÀÇ API¸¦ ±¸ÇöÀÇ »ó¼¼ÇÏ°Ô ¿¬°á½ÃÄÑ ¹ö¸®±â ¶§¹®¿¡ ÇÏÀ§ ·¹À̾îÀÇ ¿¹¿Ü°¡ üũ ¿¹¿Ü¶ó°í º¸¿©Á® ¹ö¸³´Ï´Ù. ¡¸·¦ µÈ ¿¹¿Ü¡¹ (¿øÀÎÀ» Æ÷ÇÔÇÑ ¿¹¿Ü)À» Throw Çϸé, ÀÌ·¯ÇÑ °áÁ¡¿¡ Á¢ÇÏÁö ¾Ê°í »óÀ§ ·¹À̾ ÀåÇØÀÇ »ó¼¼¸¦ È£ÃâÇØ Ãø¿¡ Åë½ÅÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ¶§¹®¿¡ »óÀ§ ·¹À̾îÀÇ ±¸Çö (ƯÈ÷ ¸Þ¼µå¿¡ ÀÇÇØ ¹ß»ýµÇ´Â ¿¹¿Ü¼¼Æ®)À» API¸¦ º¯°æÇÏÁö ¾Ê°í À¯¿¬ÇÏ°Ô º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
Throw °¡´É °´Ã¼°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇÏ´Â 2¹øÂ°ÀÇ ÀÌÀ¯´Â Throw °¡´É °´Ã¼¸¦ Throw ÇÏ´Â ¸Þ¼µå°¡ ¿øÀÎÀ» Á÷Á¢ Throw ÇÏ´Â °ÍÀ» ¸Þ¼µå¿¡ Çã°¡ÇÏÁö ¾Ê´Â ¹ü¿ë ÀÎÅÍÆäÀ̽º¿¡ ÁذÅÇÒ Çʿ䰡 ÀÖ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î
Áö¼Ó Ä÷º¼ÇÀÌ Collection
ÀÎÅÍÆäÀ̽º¿¡ ÁذÅÇØ, ±× Áö¼Ó¼ºÀÌ java.io
»óÀ§¿¡ ±¸ÇöµÇ´Â °æ¿ì¸¦ »ý°¢ÇսôÙ. put ¸Þ¼µåÀÇ ³»ºÎ´Â IOException
¸¦
Throw °¡´ÉÇÏ´Ù¶ó°í ÇÕ´Ï´Ù. ÀÌ °æ¿ì
ÀûÀýÇÑ Ã¼Å©µÇÁö ¾Ê´Â ¿¹¿ÜÀÇ IOExceptionÀ» °¨½Î´Â °ÍÀ¸·Î½á, ±¸ÇöÀº Collection ÀÎÅÍÆäÀ̽º¿¡ ÁذÅÇϸé¼, IOException
»ó¼¼¸¦ È£ÃâÇØ Ãø¿¡ ÅëÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö¼Ó Ä÷º¼ÇÀÇ »ç¾ç¿¡
ÀÌ·± Á¾·ùÀÇ ¿¹¿Ü¸¦ Throw °¡´ÉÇÏ´Ù¶ó°í ÇÏ´Â °ÍÀÌ ³ªÅ¸³ª°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
¿øÀÎÀº 2°³ÀÇ ¹æ¹ýÀ¸·Î Throw °¡´É °´Ã¼¿¡ °ü·ÃÁöÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. 1°³´Â ¿øÀÎÀ» Àμö·Î¼ ÃëÇÏ´Â »ý¼ºÀÚ¸¦ »ç¿ëÇÏ´Â ¹æ¹ý, ÀÌÁ¦(À̹Ì
) 1°³´Â initCause(Throwable)
¸Þ¼µå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿øÀÎÀÌ °ü·ÃÁþ°í¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â »õ·Î¿î Throw °¡´É Ŭ·¡½º´Â ¿øÀÎÀ» ¹Þ´Â »ý¼ºÀÚ¸¦ Á¦°øÇØ, ¿øÀÎÀ» ¹Þ´Â ¸î°³ÀÇ Throwable »ý¼ºÀÚ¿¡ (º¸Åë
°£Á¢ÀûÀ¸·Î) À§¾ç ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
try { lowLevelOp(); } catch (LowLevelException le) { throw new HighLevelException(le); // Chaining-aware constructor }initCause ¸Þ¼µå´Â public À̱⠶§¹®¿¡ ¿øÀÎÀ» ÀÓÀÇÀÇ Throw °¡´É °´Ã¼¿¡ °ü·ÃÁþ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. À̰ÍÀº ±¸ÇöÀÌ ¿¹¿Ü üÀÎ µµ±¸ ÀÇ Throwable¿¡ ÀÇ Ãß°¡¿¡ ¼±ÇàÇÏ´Â ¡¸À¯»ê Throw °¡´É °´Ã¼¡¹¿©µµ µé¾î¸ÂÀ¾´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
try { lowLevelOp(); } catch (LowLevelException le) { throw (HighLevelException) new HighLevelException(). initCause(le); // Legacy constructor }
¸±¸®½º 1.4 ÀÌÀü¿¡´Â ºñÇ¥ÁØÀÇ µ¶ÀÚ ¿¹¿Ü üÀÎ µµ±¸
(ExceptionInInitializerError
,
ClassNotFoundException
,
UndeclaredThrowableException
,
InvocationTargetException
,
WriteAbortedException
,
PrivilegedActionException
,
PrinterIOException
,
RemoteException
¹× NamingException
)¸¦ º¸°ü À¯ÁöÇÏ´Â ´Ù¼öÀÇ Throw °¡´É °´Ã¼°¡ Á¸ÀçÇϰí ÀÖ¾ú½À´Ï´Ù. ¸±¸®½º 1.4 ¿¡¼´Â ÀÌ·¯ÇÑ Throw °¡´É °´Ã¼´Â ¸ðµÎ, ȣȯ¼ºÀ» À§Çؼ ¡¸Á¾·¡ÀÇ¡¹¿¬¼â µµ±¸
ÀÇ ±¸ÇöÀ» À¯ÁöÇϸé¼, Ç¥ÁØÀÇ ¿¹¿Ü ¿¬¼â µµ±¸¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï °³·®µÇ°í ÀÖ½À´Ï´Ù.
°Ô´Ù°¡ ¸±¸®½º 1.4 ¿¡¼´Â ´Ù¼öÀÇ ¹ü¿ë Throwable Ŭ·¡½º (Exception
,
RuntimeException
,
Error
µî)°¡ ¿øÀÎÀ» ÃëÇÏ´Â »ý¼ºÀÚ¿¡ ¸ÂÃß¾î °³·®µÇ°í ÀÖ½À´Ï´Ù. initCause ¸Þ¼µå°¡ À̹Ì
Á¸ÀçÇϰí Àֱ⠶§¹®¿¡
À̰ÍÀº ¾ö¹ÐÇϰԴ Çʼö´Â ¾Æ´ÏÁö¸¸
¿øÀÎÀ» ÃëÇÏ´Â »ý¼ºÀÚ¿¡ÀÇ À§¾çÀ» ½Ç½ÃÇÏ´Â °Íº¸´Ù °£ÆíÇϰí Ç¥Çö·ÂÀÌ ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù.
Á¾·¡, Throwable
Ŭ·¡½º ¹× ±× ¼ºê Ŭ·¡½º´Â 2°³ÀÇ »ý¼ºÀÚ¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. 1°³´Â Àμö¸¦ ÃëÇÏÁö ¾Ê°í, ÀÌÁ¦(À̹Ì
) 1°³´Â »ó¼¼ ¸Þ¼¼ÁöÀÇ »ý¼º¿¡ »ç¿ë °¡´ÉÇÑ String
Àμö¸¦ ÃëÇÕ´Ï´Ù. ¶Ç, °ü·ÃµÈ
¿øÀÎÀ» º¸°ü À¯Áö °¡´ÉÇÑ ÀÌ·¯ÇÑ ¼ºê Ŭ·¡½º´Â °Ô´Ù°¡ 2°³ÀÇ »ý¼ºÀÚ¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. 1°³´Â Throwable
(¿øÀÎ)¸¦ ÃëÇØ, ÀÌÁ¦(À̹Ì
) 1°³´Â String
(»ó¼¼ ¸Þ¼¼Áö) ¹× Throwable
(¿øÀÎ)¸¦ ÃëÇÕ´Ï´Ù.
¶Ç, ¸±¸®½º 1.4 ¿¡¼´Â getStackTrace()
¸Þ¼µåµµ µµÀԵǾú½À´Ï´Ù. ÀÌ ¸Þ¼µå¸¦ »ç¿ëÇϸé, Áö±Ý±îÁö printStackTrace()
¸Þ¼µå¸¦ »ç¿ëÇØ ÅØ½ºÆ® Çü½Ä¿¡¼ ¹Û¿¡ ÀÌ¿ëÇÒ ¼ö ¾ø¾ú´ø ½ºÅà Ʈ·¹À̽º Á¤º¸¿¡
ÇÁ·Î±×·¥È µÈ ¾×¼¼½º¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¤º¸°¡ ÀÌ Å¬·¡½ºÀÇ ¡¸Á÷·ÄÈ Ç¥Çö¡¹¿¡ Ãß°¡µÇ¾ú±â ¶§¹®¿¡
getStackTrace ¹× printStackTrace°¡ Á÷·ÄÈ º¹¿ø¿¡ ÀÇÇØ ÃëµæµÈ Throw °¡´É °´Ã¼¿¡ ´ëÇØ¼ ÀûÁ¤ÇÏ°Ô ±â´ÉÇÕ´Ï´Ù.
»ý¼ºÀÚ °³¿ä | |
---|---|
Throwable ()
»ó¼¼ ¸Þ¼¼Áö¿¡ null À»
»ç¿ëÇØ, »õ·Î¿î Throw °¡´É °´Ã¼¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
Throwable (String message)
ÁöÁ¤µÈ »ó¼¼ ¸Þ¼¼Áö¸¦ »ç¿ëÇØ, »õ·Î¿î Throw °¡´É °´Ã¼¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
Throwable (String message,
Throwable cause)
ÁöÁ¤µÈ »ó¼¼ ¸Þ¼¼Áö ¹× ¿øÀÎÀ» »ç¿ëÇØ »õ·Î¿î Throw °¡´É °´Ã¼¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
Throwable (Throwable cause)
(cause==null ? null : cause.toString()) ÁöÁ¤µÈ ¿øÀÎ ¹× »ó¼¼ ¸Þ¼¼Áö¸¦ »ç¿ëÇØ »õ·Î¿î ¿¹¿Ü¸¦ ±¸ÃàÇÕ´Ï´Ù. |
¸Þ¼µå °³¿ä | |
---|---|
Throwable |
fillInStackTrace ()
½ÇÇà ½ºÅà Ʈ·¹À̽º¸¦ ¹¯½À´Ï´Ù. |
Throwable |
getCause ()
¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ºÒ¸íÇÑ °æ¿ì¿¡ ÀÌ Throwable ¶Ç´Â null
¿øÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù. |
String |
getLocalizedMessage ()
ÀÌ Throw °¡´É °´Ã¼ÀÇ, Áö¿ª ´ëÀÀµÈ ±â¼úÀ» ÀÛ¼ºÇÕ´Ï´Ù. |
String |
getMessage ()
ÀÌ Throwable °´Ã¼ÀÇ »ó¼¼ ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù. |
StackTraceElement [] |
getStackTrace ()
printStackTrace() ¿¡ ÀÇÇØ Ãâ·ÂµÈ ½ºÅà Ʈ·¹À̽º Á¤º¸¿¡ÀÇ, ÇÁ·Î±×·¥È µÈ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
Throwable |
initCause (Throwable cause)
ÁöÁ¤µÈ °ª¿¡ ´ëÇÑ ÀÌ Throwable ¡¸¿øÀΡ¹À» ÃʱâÈÇÕ´Ï´Ù. |
void |
printStackTrace ()
ÀÌ Throw °¡´É °´Ã¼ ¹× ±× ¹é Æ®·¹À̽º¸¦ Ç¥ÁØ ¿¡·¯ ½ºÆ®¸²¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
void |
printStackTrace (PrintStream s)
ÀÌ Throw °¡´É °´Ã¼¿Í ±× ¹é Æ®·¹À̽º°¡ ÁöÁ¤µÈ Àμ⠽ºÆ®¸²¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
void |
printStackTrace (PrintWriter s)
ÀÌ Throw °¡´É °´Ã¼¿Í ±× ¹é Æ®·¹À̽º°¡ ÁöÁ¤µÈ ÇÁ¸°Æ® Writer¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
void |
setStackTrace (StackTraceElement [] stackTrace)
getStackTrace() ¿¡ ÀÇÇØ µ¹·ÁÁÖ°íÁ®printStackTrace() ¹× °ü·ÃµÈ ¸Þ¼µå¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ½ºÅà Ʈ·¹À̽º ¿ä¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
String |
toString ()
ÀÌ Throw °¡´É °´Ã¼ÀÇ ÂªÀº ±â¼úÀ» ¸®ÅÏÇÕ´Ï´Ù. |
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
»ý¼ºÀÚ »ó¼¼ |
---|
public Throwable()
null
À»
»ç¿ëÇØ, »õ·Î¿î Throw °¡´É °´Ã¼¸¦ ±¸ÃàÇÕ´Ï´Ù. ¿øÀÎÀº ÃʱâȵÇÁö ¾Ê°í, ±× ÈÄ initCause(java.lang.Throwable)
¸¦
È£ÃâÇÏ´Â °ÍÀ¸·Î Ãʱâȵ˴ϴÙ.
fillInStackTrace()
¸Þ¼µå¸¦ È£ÃâÇØ, »õ·Î¿î ÀÛ¼ºµÈ Throw °¡´É °´Ã¼³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
public Throwable(String message)
initCause(java.lang.Throwable)
¸¦
È£ÃâÇÏ´Â °ÍÀ¸·Î Ãʱâȵ˴ϴÙ.
fillInStackTrace()
¸Þ¼µå¸¦ È£ÃâÇØ, »õ·Î¿î ÀÛ¼ºµÈ Throw °¡´É °´Ã¼³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
message
- »ó¼¼ ¸Þ¼¼Áö. »ó¼¼ ¸Þ¼¼Áö´Â ³ªÁß¿¡ getMessage()
¸Þ¼µå·Î ÃëµæÇϱâ À§Çؼ º¸Á¸µÈ´Ùpublic Throwable(String message, Throwable cause)
cause
¿Í
°ü·ÃµÈ
»ó¼¼ ¸Þ¼¼Áö°¡ ÀÌ Throw °¡´É °´Ã¼ÀÇ »ó¼¼ ¸Þ¼¼Áö¿¡ ÀÚµ¿ÀûÀ¸·Î ÅëÇÕµÉ °ÍÀº ¾ø½À´Ï´Ù.
fillInStackTrace()
¸Þ¼µå¸¦ È£ÃâÇØ, »õ·Î¿î ÀÛ¼ºµÈ Throw °¡´É °´Ã¼³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
message
- »ó¼¼ ¸Þ¼¼Áö (³ªÁß¿¡ getMessage()
¸Þ¼µå·Î ÃëµæÇϱâ À§Çؼ º¸Á¸µÈ´Ù)cause
- ¿øÀÎ (³ªÁß¿¡ getCause()
¸Þ¼µå·Î ÃëµæÇϱâ À§Çؼ º¸Á¸µÈ´Ù). null °ªÀÌ Çã°¡µÇ°í ÀÖ¾î ¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ºÒ¸íÇÑ °ÍÀ» ³ªÅ¸³»´Âpublic Throwable(Throwable cause)
PrivilegedActionException
µî)ÀÇ ·¡ÆÛÀÎ °æ¿ì¿¡ À¯¿ëÇÕ´Ï´Ù.
fillInStackTrace()
¸Þ¼µå¸¦ È£ÃâÇØ, »õ·Î¿î ÀÛ¼ºµÈ Throw °¡´É °´Ã¼³»ÀÇ ½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͸¦ ÃʱâÈÇÕ´Ï´Ù.
cause
- ¿øÀÎ (³ªÁß¿¡ getCause()
¸Þ¼µå·Î ÃëµæÇϱâ À§Çؼ º¸Á¸µÈ´Ù). null °ªÀÌ Çã°¡µÇ°í ÀÖ¾î ¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ºÒ¸íÇÑ °ÍÀ» ³ªÅ¸³»´Â¸Þ¼µåÀÇ »ó¼¼ |
---|
public String getMessage()
public String getLocalizedMessage()
getMessage()
¿Í
°°Àº °á°ú°¡ ¸®Åϵ˴ϴÙ
.
public Throwable getCause()
null
¿øÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù. ¿øÀÎÀº ÀÌ Throwable¸¦ Throw ½ÃŲ Throwable ÀÔ´Ï´Ù.
ÀÌ ±¸ÇöÀº, Throwable¸¦ ¿ä±¸ÇÏ´Â ¸î°³ÀÇ »ý¼ºÀÚ
°æÀ¯·Î Á¦°øµÈ ¿øÀÎ, ¶Ç´Â initCause(Throwable)
¸Þ¼µå¸¦ »ç¿ëÇØ ÀÛ¼º ÈÄ·Î ¼³Á¤µÈ ¿øÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù. º¸Åë, ÀÌ ¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù¸¸, ¼ºê Ŭ·¡½º´Â ÀÌ ¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, ´Ù¸¥ ¾î¶°ÇÑ ¹æ¹ýÀ¸·Î ¼³Á¤µÈ ¿øÀÎÀ» µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº üÀÎ µÈ ¿¹¿ÜÀÇ Throwable¿¡
ÀÇ Ãß°¡Àü¿¡ ½ÇÇàµÇ´Â ¡¸À¯»ê ¿¬¼â Throw °¡´É °´Ã¼¡¹ÀÇ °æ¿ì¿¡ ÀûÀýÇÑ µ¿ÀÛÀÔ´Ï´Ù. PrintStackTrace ¸Þ¼µåÀÇ ¾î´ÀÂÊÀ̵çÀ» ¿À¹ö¶óÀ̵å(override) ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼µå´Â ¸ðµÎ getCause ¸Þ¼µå¸¦ È£ÃâÇØ, Throw °¡´É °´Ã¼ÀÇ ¿øÀÎÀ» ÆÇº°ÇÕ´Ï´Ù.
null
public Throwable initCause(Throwable cause)
ÀÌ ¸Þ¼µå´Â 1ȸ
¸¸ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù
. º¸Åë, ÀÌ ¸Þ¼µå´Â »ý¼ºÀÚ
³»ºÎ·ÎºÎÅÍ È£ÃâµÇ´ÂÁö, Throw °¡´É °´Ã¼ÀÇ ÀÛ¼º ÈÄ °ð¹Ù·Î È£ÃâÇÕ´Ï´Ù. Throwable(Throwable)
¶Ç´Â Throwable(String, Throwable)
¸¦
»ç¿ëÇØ ÀÌ Throw °¡´É °´Ã¼¸¦ ÀÛ¼ºÇßÀ» °æ¿ì, ÀÌ ¸Þ¼µå¸¦ Çѹøµµ È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù.
cause
- ¿øÀÎ (³ªÁß¿¡ getCause()
¸Þ¼µå·Î ÃëµæÇϱâ À§Çؼ º¸Á¸µÈ´Ù). null °ªÀÌ Çã°¡µÇ°í ÀÖ¾î ¿øÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â°¡ ºÒ¸íÇÑ °ÍÀ» ³ªÅ¸³½´Ù
Throwable
ÀνºÅϽº¿¡ÀÇ ÂüÁ¶
IllegalArgumentException
- cause
°¡ ÀÌ Throwable ÀÎ °æ¿ì (Throwable´Â ±×°Í ÀÚ½ÅÀÇ ¿øÀÎÀ¸·Î´Â µÉ ¼ö ¾ø´Ù)
IllegalStateException
- ÀÌ Throw °¡´É °´Ã¼°¡ Throwable(Throwable)
¶Ç´Â Throwable(String, Throwable)
¸¦
»ç¿ëÇØ ÀÛ¼ºµÇ¾ú´ÂÁö, ÀÌ ¸Þ¼µå°¡ ÀÌ Throw °¡´É °´Ã¼¿¡ ´ëÇØ¼ È£ÃâÀ» ½ÇÇàÀÌ ³¡³ »óÅÂÀÎ °æ¿ì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 ¿øÀÎÀ» º¸°ü À¯ÁöÇÏ´Â Throw °¡´É °´Ã¼ÀÇ ¹é Æ®·¹À̽º¿¡´Â º¸Åë, ¿øÀÎÀÇ ¹é Æ®·¹À̽º°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ Á¤º¸ÀÇ ¼½ÄÀº ±¸Çö¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù¸¸, ÀüÇüÀûÀÎ ¼½ÄÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
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ġ ÇÏ´Â °Í°ú °°Àº ¸Þ¼µå·ÎºÎÅÍ ·¦ µÈ ¿¹¿Ü°¡ Throw µÈ´Ù) °æ¿ì, ÀÌ ´ÜÃàÇüÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î Ãâ·ÂÀÇ ±æÀ̸¦ Å«ÆøÀ¸·Î ´ÜÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹´Â ´ÙÀ½ÀÇ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â °ÍÀ¸·Î »ý¼ºµË´Ï´Ù.
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°³ÀÇ ½ºÅà ÇÁ·¹ÀÓÀ» ³ªÅ¸³½´Ù)ÀÇ ¹è¿À» ¸®ÅÏÇÕ´Ï´Ù. ¹è¿ÀÇ Á¦·Î ¹øÂ°ÀÇ ¿ä¼Ò (¹è¿ÀÇ ±æÀ̰¡ Á¦·Î°¡ ¾Æ´Ñ °æ¿ì)´Â ½ºÅÃÀÇ ¼±µÎ (ÀÏ·ÃÀÇ ¸Þ¼µå È£ÃâÀÇ ÃÖÈÄ)¸¦ ³ªÅ¸³À´Ï´Ù. º¸Åë, À̰ÍÀº Throw °¡´É °´Ã¼°¡ ÀÛ¼º ¹× Throw µÈ Æ÷ÀÎÆ®ÀÔ´Ï´Ù. ¹è¿ÀÇ ¸¶Áö¸· ¿ä¼Ò (¹è¿ÀÇ ±æÀ̰¡ Á¦·Î°¡ ¾Æ´Ñ °æ¿ì)´Â ½ºÅÃÀÇ ¸»¹Ì (ÀÏ·ÃÀÇ ¸Þ¼µå È£ÃâÀÇ ÃÖÃÊ)¸¦ ³ªÅ¸³À´Ï´Ù.
°¡»ó ¸Ó½Å¾È¿¡´Â ƯÁ¤ÀÇ »óȲÇÏ·Î ½ºÅà Ʈ·¹À̽º·ÎºÎÅÍ 1°³ ÀÌ»óÀÇ ½ºÅà ÇÁ·¹ÀÓÀ» »ý·« ÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ±Ø´ÜÀûÀÎ °æ¿ì, ÀÌ Throw °¡´É °´Ã¼¿¡ °üÇÑ ½ºÅà Ʈ·¹À̽º Á¤º¸¸¦ º¸°ü À¯ÁöÇÏÁö ¾Ê´Â °¡»ó ¸Ó½ÅÀÌ, ÀÌ ¸Þ¼µå·ÎºÎÅÍ ±æÀÌ Á¦·ÎÀÇ ¹è¿À» µ¹·ÁÁÖ´Â °ÍÀÌ Çã°¡µË´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ¸Þ¼µå¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹è¿Àº, printStackTrace¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ÇÁ·¹ÀÓ ¸¶´Ù 1°³ÀÇ ¿ä¼Ò¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
public void setStackTrace(StackTraceElement [] stackTrace)
getStackTrace()
¿¡ ÀÇÇØ µ¹·ÁÁÖ°íÁ®printStackTrace()
¹× °ü·ÃµÈ ¸Þ¼µå¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ½ºÅà Ʈ·¹À̽º ¿ä¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù.ÀÌ ¸Þ¼µå´Â RPC üÁ¦ ¹× ´Ù¸¥ °í¼º´É ½Ã½ºÅÛ¿¡¼ÀÇ »ç¿ëÀ» ¸ñÀûÀ¸·Î ¼³°èµÇ°í ÀÖ¾î Ŭ¶óÀÌ¾ðÆ®°¡ µðÆúÆ® ½ºÅà Ʈ·¹À̽º¸¦ ¿À¹ö¶óÀ̵å(override) ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. µðÆúÆ® ½ºÅà Ʈ·¹À̽º´Â Throw °¡´É °´Ã¼ÀÇ ±¸Ãà½Ã¿¡ fillInStackTrace()
¿¡ ÀÇÇØ »ý¼ºµÇ´ÂÁö, Throw °¡´É °´Ã¼°¡ Á÷·ÄÈ ½ºÆ®¸²·ÎºÎÅÍ ÀоîµéÀÏ ¶§¿¡ Á÷·ÄÈ º¹¿øµË´Ï´Ù.
stackTrace
- ÀÌ Throwable
¿Í
°ü·ÃÁþ´Â ½ºÅà Ʈ·¹À̽º ¿ä¼Ò. ÁöÁ¤µÈ ¹è¿Àº ÀÌ È£Ãâ¿¡ ÀÇÇØ Ä«ÇǵȴÙ. ¸Þ¼µå È£ÃâÀÇ º¹±Í ÈÄ¿¡
ÁöÁ¤µÈ ¹è¿³»¿¡¼ ÇàÇØÁø º¯°æÀº, Throwable
½ºÅà Ʈ·¹À̽º¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù
NullPointerException
- stackTrace
°¡ null
ÀÎ °æ¿ì, ¶Ç´Â stackTrace
¸î°³ÀÇ ¿ä¼Ò°¡ null
ÀÎ °æ¿ì
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.