×÷ÕߣºØýÃû ÎÄÕÂÀ´Ô´£º»¥ÁªÍø µã»÷Êý£º ÔÚÏßͶ¸å Ͷ¸åÖ¸ÄÏ  |
JavaÌṩÁËÁ½ÀàÖ÷ÒªµÄÒì³£:runtime exceptionºÍchecked exception¡£ËùÓеÄchecked exceptionÊÇ´Ójava.lang.ExceptionÀàÑÜÉý³öÀ´µÄ£¬¶øruntime exceptionÔòÊÇ´Ójava.lang.RuntimeException»òjava.lang.ErrorÀàÑÜÉý³öÀ´µÄ¡£
ËüÃǵIJ»Í¬Ö®´¦±íÏÖÔÚÁ½·½Ãæ:»úÖÆÉϺÍÂß¼ÉÏ¡£
Ò»¡¢»úÖÆÉÏ
ËüÃÇÔÚ»úÖÆÉϵIJ»Í¬±íÏÖÔÚÁ½µã:1.ÈçºÎ¶¨Òå·½·¨;2. ÈçºÎ´¦ÀíÅ׳öµÄÒì³£¡£Çë¿´ÏÂÃæCheckedExceptionµÄ¶¨Òå:
public class CheckedException extends Exception
{
¡¡public CheckedException() {}
¡¡public CheckedException( String message )
¡¡{
super( message );
¡¡}
}
ÒÔ¼°Ò»¸öʹÓÃexceptionµÄÀý×Ó:
public class ExceptionalClass
{
¡¡public void method1()
throws CheckedException
{
¡¡// ... throw new CheckedException( ¡°...³ö´íÁË¡° );
}
¡¡public void method2( String arg )
{
¡¡if( arg == null )
¡¡{
throw new NullPointerException( ¡°method2µÄ²ÎÊýargÊÇnull!¡± );
¡¡}
}
¡¡public void method3() throws CheckedException
{
¡¡method1();
}
}
Äã¿ÉÄÜÒѾעÒâµ½ÁË£¬Á½¸ö·½·¨method1()ºÍmethod2()¶¼»áÅ׳öexception£¬¿ÉÊÇÖ»ÓÐmethod1()×öÁËÉùÃ÷¡£ÁíÍ⣬method3()±¾Éí²¢²»»áÅ׳öexception£¬¿ÉÊÇËüÈ´ÉùÃ÷»áÅ׳öCheckedException¡£ÔÚÏòÄã½âÊÍ֮ǰ£¬ÈÃÎÒÃÇÏÈÀ´¿´¿´Õâ¸öÀàµÄmain()·½·¨:
public static void main( String[] args )
{
¡¡ExceptionalClass example = new ExceptionalClass();
¡¡try
¡¡{
example.method1();
example.method3();
¡¡}
¡¡catch( CheckedException ex ) { } example.method2( null );
}
ÔÚmain()·½·¨ÖУ¬Èç¹ûÒªµ÷ÓÃmethod1()£¬Äã±ØÐë°ÑÕâ¸öµ÷Ó÷ÅÔÚtry/catch³ÌÐò¿éµ±ÖУ¬ÒòΪËü»áÅ׳öChecked exception¡£
Ïà±È֮ϣ¬µ±Äãµ÷ÓÃmethod2()ʱ£¬Ôò²»ÐèÒª°ÑËü·ÅÔÚtry/catch³ÌÐò¿éµ±ÖУ¬ÒòΪËü»áÅ׳öµÄexception²»ÊÇchecked exception£¬¶øÊÇruntime exception¡£»áÅ׳öruntime exceptionµÄ·½·¨ÔÚ¶¨Òåʱ²»±ØÉùÃ÷Ëü»áÅ׳öexception¡£
ÏÖÔÚ£¬ÈÃÎÒÃÇÔÙÀ´¿´¿´method3()¡£Ëüµ÷ÓÃÁËmethod1()ȴûÓаÑÕâ¸öµ÷Ó÷ÅÔÚtry/catch³ÌÐò¿éµ±ÖС£ËüÊÇͨ¹ýÉùÃ÷Ëü»áÅ׳ömethod1()»áÅ׳öµÄexceptionÀ´±ÜÃâÕâÑù×öµÄ¡£ËüûÓв¶»ñÕâ¸öexception£¬¶øÊǰÑËü´«µÝÏÂÈ¥¡£Êµ¼ÊÉÏmain()·½·¨Ò²¿ÉÒÔÕâÑù×ö£¬Í¨¹ýÉùÃ÷Ëü»áÅ׳öChecked exceptionÀ´±ÜÃâʹÓÃtry/catch³ÌÐò¿é(µ±È»ÎÒÃÇ·´¶ÔÕâÖÖ×ö·¨)¡£
С½áÒ»ÏÂ:
* Runtime exceptions:
ÔÚ¶¨Òå·½·¨Ê±²»ÐèÒªÉùÃ÷»áÅ׳öruntime exception;
ÔÚµ÷ÓÃÕâ¸ö·½·¨Ê±²»ÐèÒª²¶»ñÕâ¸öruntime exception;
runtime exceptionÊÇ´Ójava.lang.RuntimeException»òjava.lang.ErrorÀàÑÜÉý³öÀ´µÄ¡£
* Checked exceptions:
¶¨Òå·½·¨Ê±±ØÐëÉùÃ÷ËùÓпÉÄÜ»áÅ׳öµÄchecked exception;
ÔÚµ÷ÓÃÕâ¸ö·½·¨Ê±£¬±ØÐë²¶»ñËüµÄchecked exception£¬²»È»¾ÍµÃ°ÑËüµÄexception´«µÝÏÂÈ¥;
checked exceptionÊÇ´Ójava.lang.ExceptionÀàÑÜÉý³öÀ´µÄ¡£
¶þ¡¢Âß¼ÉÏ
´ÓÂß¼µÄ½Ç¶ÈÀ´Ëµ£¬checked exceptionsºÍruntime exceptionÊÇÓв»Í¬µÄʹÓÃÄ¿µÄµÄ¡£checked exceptionÓÃÀ´Ö¸Ê¾Ò»ÖÖµ÷Ó÷½Äܹ»Ö±½Ó´¦ÀíµÄÒì³£Çé¿ö¡£¶øruntime exceptionÔòÓÃÀ´Ö¸Ê¾Ò»ÖÖµ÷Ó÷½±¾ÉíÎÞ·¨´¦Àí»ò»Ö¸´µÄ³ÌÐò´íÎó¡£
checked exceptionÆÈʹÄã²¶»ñËü²¢´¦ÀíÕâÖÖÒì³£Çé¿ö¡£ÒÔjava.net.URLÀàµÄ¹¹½¨Æ÷(constructor)ΪÀý£¬ËüµÄÿһ¸ö¹¹½¨Æ÷¶¼»áÅ׳öMalformedURLException¡£MalformedURLException¾ÍÊÇÒ»ÖÖchecked exception¡£ÉèÏëһϣ¬ÄãÓÐÒ»¸ö¼òµ¥µÄ³ÌÐò£¬ÓÃÀ´ÌáʾÓû§ÊäÈëÒ»¸öURL£¬È»ºóͨ¹ýÕâ¸öURLÈ¥ÏÂÔØÒ»¸öÍøÒ³¡£Èç¹ûÓû§ÊäÈëµÄURLÓдíÎ󣬹¹½¨Æ÷¾Í»áÅ׳öÒ»¸öexception¡£¼ÈÈ»Õâ¸öexceptionÊÇchecked exception£¬ÄãµÄ³ÌÐò¾Í¿ÉÒÔ²¶»ñËü²¢ÕýÈ·´¦Àí:±ÈÈç˵ÌáʾÓû§ÖØÐÅÊäÈë¡£
ÔÙ¿´ÏÂÃæÕâ¸öÀý×Ó:
public void method()
{
¡¡int [] numbers = { 1, 2, 3 };
¡¡int sum = numbers[0] numbers[3];
}
ÔÚÔËÐз½·¨method()ʱ»áÓöµ½ArrayIndexOutOfBoundsException(ÒòΪÊý×énumbersµÄ³ÉÔ±ÊÇ´Ó0µ½2)¡£¶ÔÓÚÕâ¸öÒì³££¬µ÷Ó÷½ÎÞ·¨´¦Àí/¾ÀÕý¡£Õâ¸ö·½·¨method()ºÍÉÏÃæµÄmethod2()Ò»Ñù£¬¶¼ÊÇruntime exceptionµÄÇéÐΡ£ÉÏÃæÎÒÒѾÌáµ½£¬runtime exceptionÓÃÀ´Ö¸Ê¾Ò»ÖÖµ÷Ó÷½±¾ÉíÎÞ·¨´¦Àí/»Ö¸´µÄ³ÌÐò´íÎó¡£¶ø³ÌÐò´íÎóͨ³£ÊÇÎÞ·¨ÔÚÔËÐйý³ÌÖд¦ÀíµÄ£¬±ØÐë¸ÄÕý³ÌÐò´úÂë¡£
×ܶøÑÔÖ®£¬ÔÚ³ÌÐòµÄÔËÐйý³ÌÖÐÒ»¸öchecked exception±»Å׳öµÄʱºò£¬Ö»ÓÐÄܹ»Êʵ±´¦ÀíÕâ¸öÒì³£µÄµ÷Ó÷½²ÅÓ¦¸ÃÓÃtry/catchÀ´²¶»ñËü¡£¶ø¶ÔÓÚruntime exception£¬Ôò²»Ó¦µ±ÔÚ³ÌÐòÖв¶»ñËü¡£Èç¹ûÄãÒª²¶»ñËüµÄ»°£¬Äã¾Í»áðÕâÑùÒ»¸ö·çÏÕ:³ÌÐò´úÂëµÄ´íÎó(bug)±»ÑÚ¸ÇÔÚÔËÐе±ÖÐÎÞ·¨±»²ì¾õ¡£ÒòΪÔÚ³ÌÐò²âÊÔ¹ý³ÌÖУ¬ÏµÍ³´òÓ¡³öÀ´µÄµ÷ÓöÑջ·¾¶(StackTrace)ÍùÍùʹÄã¸ü¿ìÕÒµ½²¢Ð޸ĴúÂëÖеĴíÎó¡£ÓÐЩ³ÌÐòÔ±½¨Òé²¶»ñruntime exception²¢¼Í¼ÔÚlogÖУ¬ÎÒ·´¶ÔÕâÑù×ö¡£ÕâÑù×öµÄ»µ´¦ÊÇÄã±ØÐëͨ¹ýä¯ÀÀlogÀ´ÕÒ³öÎÊÌ⣬¶øÓÃÀ´²âÊÔ³ÌÐòµÄ²âÊÔϵͳ(±ÈÈçUnit Test)È´ÎÞ·¨Ö±½Ó²¶»ñÎÊÌâ²¢±¨¸æ³öÀ´¡£
ÔÚ³ÌÐòÖв¶»ñruntime exception»¹»á´øÀ´¸ü¶àµÄÎÊÌâ:Òª²¶»ñÄÄЩruntime exception?ʲôʱºò²¶»ñ?runtime exceptionÊDz»ÐèÒªÉùÃ÷µÄ£¬ÄãÔõÑùÖªµÀÓÐûÓÐruntime exceptionÒª²¶»ñ?ÄãÏë¿´µ½ÔÚ³ÌÐòÖÐÿһ´Îµ÷Ó÷½·¨Ê±£¬¶¼Ê¹ÓÃtry/catch³ÌÐò¿éÂð?
|
ÐÅÑôµçÄÔÍøÉêÃ÷:±¾Õ¾×ÊÔ´À´Ô´ÓÚ»¥ÁªÍø,°æÈ¨¹éÔ×÷ÕßËùÓУ¬ÈçÓÐÇÖȨÇëÁªÏµÎÒÃÇ,ÎÒÃǽ«ÔÚÊÕµ½ÏûÏ¢ºó24СʱÄÚɾ³ý.
ÉÏһƪÎÄÕ£º JavaÃüÁîÐмò½é |
ÏÂһƪÎÄÕ£º HibernateºÍJive»º´æ²ßÂÔµÄ±È½Ï |
¡¾×ÖÌ壺С ´ó¡¿¡¾·¢±íÆÀÂÛ¡¿¡¾¼ÓÈëÊղء¿¡¾¸æËߺÃÓÑ¡¿¡¾´òÓ¡´ËÎÄ¡¿¡¾¹Ø±Õ´°¿Ú¡¿ |
¡¡ ¡¡ÍøÓÑÆÀÂÛ£º£¨Ö»ÏÔʾ×îÐÂ10Ìõ¡£ÆÀÂÛÄÚÈÝÖ»´ú±íÍøÓѹ۵㣬Óë±¾Õ¾Á¢³¡Î޹أ¡£© |
|
|