|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
java.lang.Objectjava.lang.Throwable
public class Throwable
Throwable
Ŭ·¡½º´Â
Java ¾ð¾îÀÇ ¸ðµç ¿¡·¯¿Í ¿¹¿ÜÀÇ ½´ÆÛ Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½º (¶Ç´Â ±× ¼ºê Ŭ·¡½º ÁßÀÇ 1 °³)ÀÇ ÀνºÅϽºÀÎ ¿ÀºêÁ§Æ®¸¸ÀÌ Java °¡»ó ¸Ó½Å¿¡
ÇØ Throw µÇ´ÂÁö, Java
throw
±¸¹®¿¡
ÇØ Throw µË´Ï´Ù. ¶È°°ÀÌ, ÀÌ Å¬·¡½º ¶Ç´Â ±× ¼ºê Ŭ·¡½º ÁßÀÇ 1 °³¸¸ÀÌ catch
ÀýÀÇ ÀμöÀÇ ÇüÅ·ΠÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
º¸Åë
,Error
¹× Exception
2 °³ÀÇ ¼ºê Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ¿¹¿ÜÀûÀÎ »óȲÀÌ ¹ß»ýÇÑ °ÍÀ» ³ªÅ¸³»±â À§Çؼ »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ÀνºÅϽº´Â
º¸Åë
, °ü·ÃµÈ Á¤º¸ (½ºÅà Ʈ·¹À̽º µ¥ÀÌÅ͵î)¸¦ Æ÷ÇÔÇϱâ À§Çؼ, ¿¹¿ÜÀûÀÎ »óȲ¿¡ µû¶ó »õ·Ó°Ô ÀÛ¼ºµË´Ï´Ù.
Throw °¡´É ¿ÀºêÁ§Æ®¿¡´Â ÀÛ¼º½ÃÀÇ ±× threadÀÇ ½ÇÇà ½ºÅÃÀÇ snapshot°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ Å¬·¡½º¿¡´Â ¿¡·¯¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ ³ªÅ¸³»´Â ¸Þ¼¼Áö ij¸¯ÅÍ ¶óÀεµ Æ÷ÇԵ˴ϴÙ. ÃÖÁ¾ÀûÀ¸·Î À̰ÍÀº ¡¸¿øÀΡ¹ (ÀÌ Throw °¡´É ¿ÀºêÁ§Æ®ÀÇ Throw¸¦ ÀÏÀ¸Å² ´Ù¸¥ Throw °¡´É ¿ÀºêÁ§Æ®)À» Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿øÀÎ ±â´ÉÀº, ¸±¸®½º 1.4 ½Å±â´ÉÀÔ´Ï´Ù. À̰ÍÀº, ¿øÀÎ ÀÚü°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇØ ¿¹¿ÜÀÇ ¿¬¼â¸¦ ÀÛ¼ºÇÒ ¼ö Àֱ⠶§¹®¿¡ ¡¸Ã¼ÀÎ µÈ ¿¹¿Ü¡¹±â´ÉÀ̶ó°íµµ ºÒ¸³´Ï´Ù.
Throw °¡´É ¿ÀºêÁ§Æ®°¡ ¿øÀÎÀ» º¸°ü À¯ÁöÇÒ ¼ö ÀÖ´Â 1 °³ÀÇ ÀÌÀ¯·Î¼ Throw °¡´É ¿ÀºêÁ§Æ®¸¦ Throw Çϴ Ŭ·¡½º°¡ ÇÏÀ§ ·¹À̾î Ãß»óÈ À§¿¡ ±¸ÃàµÇ°í ÀÖ´Â °ÍÀÌ µé°í ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡ »óÀ§ ·¹À̾ ´ëÇÑ Á¶ÀÛÀÌ ½ÇÆÐÇÏ´Â °ÍÀº, ÇÏÀ§ ·¹À̾¼ÀÇ Á¶ÀÛÀÌ ½ÇÆÐÇϱ⠶§¹®¿¡ÀÔ´Ï´Ù. ÇÏÀ§ ·¹À̾ ÇØ Throw µÇ´Â Throw °¡´É ¿ÀºêÁ§Æ®¸¦ ¿ÜºÎ¿¡ ¼Û½ÅÇÏ´Â °ÍÀº, ºÎÀûÀýÇÑ ¼³°è ¹æ¹ýÀÔ´Ï´Ù. À̰ÍÀº, º¸Åë , »óÀ§ ·¹À̾ ÇØ Á¦°øµÇ´Â Ãß»óÈ ±â´É°ú´Â °ü°è°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. °Ô´Ù°¡ ÀÌ·¯ÇÑ Á¶ÀÛÀ» ½Ç½ÃÇϸé, »óÀ§ ·¹À̾îÀÇ API¸¦ ±¸ÇöÀÇ »ó¼¼ÇÏ°Ô ¿¬°á½ÃÄÑ ¹ö¸®±â ¶§¹®¿¡ ÇÏÀ§ ·¹À̾îÀÇ ¿¹¿Ü°¡ üũ ¿¹¿Ü¶ó°í º¸¿©Á® ¹ö¸³´Ï´Ù. ¡¸·¦ µÈ ¿¹¿Ü¡¹ (¿øÀÎÀ» Æ÷ÇÔÇÑ ¿¹¿Ü)À» Throw Çϸé, ÀÌ·¯ÇÑ °áÁ¡¿¡ Á¢ÇÏÁö ¾Ê°í »óÀ§ ·¹À̾ ÀåÇØÀÇ »ó¼¼¸¦ È£ÃâÇØ Ãø¿¡ Åë½ÅÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ¶§¹®¿¡ »óÀ§ ·¹À̾îÀÇ ±¸Çö (ƯÈ÷ ¸Þ¼µå¿¡ ÇØ 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 °¡´É ¿ÀºêÁ§Æ®¿Í ±× ¹é Æ®·¹À̽º°¡ ÁöÁ¤µÈ ÇÁ¸°Æ® ¶óÀÌÅÍ¿¡ Ãâ·ÂÇÕ´Ï´Ù. |
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 µµ ÂüÁ¶ÇϽʽÿÀ.