¡¶JavaÓïÑÔÈëÃÅ¡·

ÏÂÔر¾Êé

Ìí¼ÓÊéÇ©

JavaÓïÑÔÈëÃÅ- µÚ13²¿·Ö


°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
ÏÂÐèÒªÖªµÀ´íÎó²úÉúµÄÄÚ²¿Ï¸½Ú¡£Í¨³££¬ÓÃÈ«¾Ö±äÁ¿errnoÀ´´æ´¢¡±Òì³£¡±µÄÀàÐÍ¡£ÕâÈÝÒ×µ¼ÖÂÎóÓã¬ÒòΪһ¸öerrnoµÄÖµÓпÉÄÜÔÚ±»´¦Àí£¿reg£»Ç°±»ÁíÍâµÄ´íÎ󸲸ǵô¡£¼´Ê¹×îÓÅÃÀµÄCÓïÑÔ³ÌÐò£¬ÎªÁË´¦Àí¡±Òì³£¡±Çé¿ö£¬Ò²³£ÇóÖúÓÚgotoÓï¾ä¡£Java¶Ô¡±Òì³£¡±µÄ´¦ÀíÊÇÃæÏò¶ÔÏóµÄ¡£Ò»¸öJavaµÄExceptionÊÇÒ»¸öÃèÊö¡±Òì³£¡±Çé¿öµÄ¶ÔÏó¡£µ±³öÏÖ¡±Òì³£¡±Çé¿öʱ£¬Ò»¸öException¶ÔÏó¾Í²úÉúÁË£¬²¢·Åµ½²úÉúÕâ¸ö¡±Òì³£¡±µÄ³ÉÔ±º¯ÊýÀï¡£
8¡£1»ù´¡
JavaµÄ¡±Òì³£¡±´¦ÀíÊÇͨ¹ý5¸ö¹Ø¼ü´ÊÀ´ÊµÏֵģºtry£»catch£»throw£»throwsºÍfinally¡£ÓÃtryÀ´Ö´ÐÐÒ»¶Î³ÌÐò£¬Èç¹û³öÏÖ¡±Òì³£¡±£¬ÏµÍ³Å׳ö£¨throws£¿copy£»Ò»¸ö¡±Òì³£¡±£¬Äã¿ÉÒÔͨ¹ýËüµÄÀàÐÍÀ´²¶×½£¨catch£¿copy£»Ëü£¬»ò×îºó£¨finally£¿copy£»ÓÉȱʡ´¦ÀíÆ÷À´´¦Àí¡£ÏÂÃæÊÇ¡±Òì³£¡±´¦Àí³ÌÐòµÄ»ù±¾ÐÎʽ£ºtry£û//³ÌÐò¿é£ýcatch£¨ExceptionType1e£©£û//¶ÔExceptionType1µÄ´¦Àí£ýcatch£¨ExceptionType2e£©£û//¶ÔExceptionType2µÄ´¦Àíthrow£¨e£©£»//ÔÙÅ׳öÕâ¸ö¡±Òì³£¡±£ýfinally£û£ý
8¡£2¡±Òì³£¡±µÄÀàÐÍ
ÔÚ¡±Òì³£¡±Àà²ã´ÎµÄ×îÉϲãÓÐÒ»¸öµ¥¶ÀµÄÀà½Ð×öThrowable¡£Õâ¸öÀàÓÃÀ´±íʾËùÓеġ±Òì³£¡±Çé¿ö¡£Ã¿¸ö¡±Òì³£¡±ÀàÐͶ¼ÊÇThrowableµÄ×ÓÀà¡£ThrowableÓÐÁ½¸öÖ±½ÓµÄ×ÓÀà¡£Ò»ÀàÊÇException£¬ÊÇÓû§³ÌÐòÄܹ»²¶×½µ½µÄ¡±Òì³£¡±Çé¿ö¡£ÎÒÃǽ«Í¨¹ý²úÉúËüµÄ×ÓÀàÀ´´´½¨×Ô¼ºµÄ¡±Òì³£¡±¡£ÁíÒ»ÀàÊÇError£¬Ëü¶¨ÒåÁËÄÇ£¿copy£»Í¨³£ÎÞ·¨²¶×½µ½µÄ¡±Òì³£¡±¡£Òª½÷É÷ʹÓÃError×ÓÀ࣬ÒòΪËüÃÇͨ³£»áµ¼ÖÂÔÖÄÑÐÔµÄʧ°Ü¡£ÔÚExceptionÖÐÓÐÒ»¸ö×ÓÀàRuntimeException£¬ËüÊdzÌÐòÔËÐÐʱ×Ô¶¯µØ¶Ôij£¿copy£»´íÎó×÷³ö·´Ó¦¶ø²úÉúµÄ¡£
8¡£3²»²¶×½¡±Òì³£¡±
¡±Òì³£¡±¶ÔÏóÊÇJavaÔÚÔËÐÐʱ¶Ôij£¿copy£»¡±Òì³£¡±Çé¿ö×÷³ö·´Ó¦¶ø²úÉúµÄ¡£ÀýÈ磬ÏÂÃæÕâ¸öС³ÌÐò°üº¬Ò»¸öÕûÊý±»0³ýµÄ¡±Òì³£¡±¡£
classExc0£ûpublicstaticvoidmain£¨Stringargs£§£§£©£ûintd=0£»inta=42/d£»£ý£ý
µ±JavaÖ´ÐÐÕâ¸ö³ý·¨Ê±£¬ÓÉÓÚ·ÖĸÊÇ0£¬¾Í»á¹¹ÔìÒ»¸ö¡±Òì³£¡±¶ÔÏóÀ´Ê¹³ÌÐòÍ£ÏÂÀ´²¢´¦ÀíÕâ¸ö´íÎóÇé¿ö£¬ÔÚÔËÐÐʱ¡±Å׳ö¡±£¨throw£¿copy£»Õâ¸ö¡±Òì³£¡±¡£Ëµ¡±Å׳ö¡±ÊÇÒòΪËüÏóÒ»¸ö¹öÌ̵ÄÂíÁåÊí£¬Äã±ØÐë°ÑËüץס²¢Á¢¼´´¦Àí¡£³ÌÐòÁ÷½«»áÔÚ³ýºÅ²Ù×÷·û´¦±»´ò¶Ï£¬È»ºó¼ì²éµ±Ç°µÄµ÷ÓöÑÕ»À´²éÕÒ¡±Òì³£¡±¡£Ò»¸ö¡±Òì³£¡±´¦ÀíÆ÷ÊÇÓÃÀ´Á¢¼´´¦Àí¡±Òì³£¡±Çé¿öµÄ¡£ÔÚÕâ¸öÀý×ÓÀÎÒÃÇûÓбàÒ»¸ö¡±Òì³£¡±´¦ÀíÆ÷£¬ËùÒÔȱʡµÄ´¦ÀíÆ÷¾Í·¢»Ó×÷ÓÃÁË¡£È±Ê¡µÄ´¦ÀíÆ÷´òÓ¡ExceptionµÄ×Ö·û£¿reg£»ÖµºÍ·¢Éú¡±Òì³£¡±µÄµØµã¡£
ÏÂÃæÊÇÎÒÃǵÄСÀý×ÓµÄÊä³ö¡£
C£º¡·javaExc0java¡£lang¡£arithmeticException£º/byzeroatExc0¡£main£¨Exc0¡£java£º4£©
8¡£4tryÓëcatch
ͨ³£ÎÒÃÇÏ£Íû×Ô¼ºÀ´´¦Àí¡±Òì³£¡±²¢¼ÌÐøÔËÐС£¿ÉÒÔÓÃtryÀ´Ö¸¶¨Ò»¿éÔ¤·ÀËùÓС±Òì³£¡±µÄµÄ³ÌÐò¡£½ô¸úÔÚtry³ÌÐòºóÃ棬Ӧ°üº¬Ò»¸öcatch×Ó¾äÀ´Ö¸¶¨ÄãÏëÒª²¶×½µÄ¡±Òì³£¡±µÄÀàÐÍ¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÊÇÔÚÇ°ÃæµÄÀý×ӵĻù´¡ÉϹ¹ÔìµÄ£¬µ«Ëü°üº¬Ò»¸ötry³ÌÐò¿éºÍÒ»¸öcatch×Ӿ䡣classexc1£ûpublicstaticvoidmain£¨stringargs£§£§£©£ûtry£ûintd=0£»inta=42/d£»£ýcatch£¨arithmeticexceptione£©£ûsystem¡£out¡£println£¨¡±divisionbyzero¡±£©£»£ý£ý£ý
catch×Ó¾äµÄÄ¿±êÊǽâ¾ö¡±Òì³£¡±Çé¿ö£¬°Ñ±äÁ¿Éèµ½ºÏÀíµÄ״̬£¬²¢ÏóûÓгö´íÒ»Ñù¼ÌÐøÔËÐС£Èç¹ûÒ»¸ö×Ó³ÌÐò²»´¦Àíij¸ö¡±Òì³£¡±£¬Ôò·µµ½ÉÏÒ»¼¶´¦Àí£¬Ö±µ½×îÍâÒ»¼¶¡£
8¡£5¶à¸öcatch×Ó¾ä
ÔÚijÇé¿öÏ£¬Í¬Ò»¶Î³ÌÐò¿ÉÄܲúÉú²»Ö¹Ò»ÖÖ¡±Òì³£¡±Çé¿ö¡£Äã¿ÉÒÔ·ÅÖöà¸öcatch×Ӿ䣬ÆäÖÐÿһÖÖ¡±Òì³£¡±ÀàÐͶ¼½«±»¼ì²é£¬µÚÒ»¸öÓ룿reg£»Æ¥ÅäµÄ¾Í»á±»Ö´ÐС£Èç¹ûÒ»¸öÀàºÍÆä×ÓÀ඼ÓеĻ°£¬Ó¦°Ñ×ÓÀà·ÅÔÚÇ°Ã棬·ñÔò½«ÓÀÔ¶²»»áµ½´ï×ÓÀà¡£ÏÂÃæÊÇÒ»¸öÓÐÁ½¸öcatch×Ó¾äµÄ³ÌÐòµÄÀý×Ó¡£
classMultiCatch£ûpublicstaticvoidmain£¨Stringargs£§£§£©£ûtry£ûinta
=args¡£length£»System¡£out¡£println£¨¡±a=¡±£«a£©£»intb=42/a£»intc£§£§=
£û1£ý£»c£§42£§=99£»£ýcatch£¨ArithmeticExceptione£©£ûSystem¡£out¡£println£¨¡±div
by0£º¡±£«e£©£»£ýcatch£¨ArrayIndexOutOfBoundsExceptione£©
£ûsystem¡£out¡£println£¨¡±arrayindexoob£º¡±£«e£©£»£ý£ý£ý
Èç¹ûÔÚ³ÌÐòÔËÐÐʱ²»¸ú²ÎÊý£¬½«»áÒýÆðÒ»¸ö0×ö³ýÊýµÄ¡±Òì³£¡±£¬ÒòΪaµÄֵΪ0¡£Èç¹ûÎÒÃÇÌ᣿copy£»Ò»¸öÃüÁîÐвÎÊý£¬½«²»»á²úÉúÕâ¸ö¡±Òì³£¡±£¬ÒòΪaµÄÖµ´óÓÚ0¡£µ«»áÒýÆðÒ»¸öArrayIndexOutOfBoundexceptionµÄ¡±Òì³£¡±£¬ÒòΪÕûÐÍÊý×écµÄ³¤¶ÈÊÇ1£¬È´¸øc£§42£§¸³Öµ¡£ÏÂÃæÊÇÒÔÉÏÁ½ÖÖÇé¿öµÄÔËÐнá¹û¡£
C£º¡·javaMultiCatcha=0divby0£ºjava¡£lang¡£arithmeticexception£º/by
zeroC£º¡·javaMutiCatch1a=1arrayindexoob£º
java¡£lang¡£ArrayIndexOutOfBoundsException£º42
8¡£6tryÓï¾äµÄǶÌ×
Äã¿ÉÒÔÔÚÒ»¸ö³ÉÔ±º¯Êýµ÷ÓõÄÍâÃæдһ¸ötryÓï¾ä£¬ÔÚÕâ¸ö³ÉÔ±º¯ÊýÄÚ²¿£¬Ð´ÁíÒ»¸ötryÓï¾ä±£»¤ÆäËû´úÂ롣ÿµ±Óöµ½Ò»¸ötryÓï¾ä£¬¡±Òì³£¡±µÄ¿ò¼Ü¾Í·Åµ½¶ÑÕ»ÉÏÃ棬ֱµ½ËùÓеÄtryÓï¾ä¶¼Íê³É¡£Èç¹ûÏÂÒ»¼¶µÄtryÓï¾äûÓжÔijÖÖ¡±Òì³£¡±½øÐд¦Àí£¬¶ÑÕ»¾Í»áÕ¹¿ª£¬Ö±µ½Óöµ½Óд¦ÀíÕâÖÖ¡±Òì³£¡±µÄtryÓï¾ä¡£ÏÂÃæÊÇÒ»¸ötryÓï¾äǶÌ×µÄÀý×Ó¡£
classMultiNest£ûstaticvoidprocedure£¨£©£ûtry£ûintc£§£§=£û1£ý£ºc£§42£§
=99£»£ýcatch£¨ArrayIndexOutOfBoundsexceptione£©
£ûSystem¡£out¡£println£¨¡±arrayindexoob£º¡±£«e£©£»£ý£ýpublicstaticvoid
main£¨Stringargs£§£§£©£ûtry£ûinta=args¡£length£»system¡£out¡£println£¨¡±a
=¡±£«a£©£»intb=42/a£»procedure£¨£©£»£ýcatch£¨arithmeticExceptione£©
£ûSystem¡£out¡£println£¨¡±divby0£º¡±£«e£©£»£ý£ý£ý
³ÉÔ±º¯ÊýprocedureÀïÓÐ×Ô¼ºµÄtry/catch¿ØÖÆ£¬ËùÒÔmain²»ÓÃÈ¥´¦ÀíArrayIndexOutOfBoundsException¡£
8¡£7throwÓï¾ä
throwÓï¾äÓÃÀ´Ã÷È·µØÅ׳öÒ»¸ö¡±Òì³£¡±¡£Ê×ÏÈ£¬Äã±ØÐëµÃµ½Ò»¸öThrowableµÄʵÀýµÄ¿ØÖƱú£¬Í¨¹ý²ÎÊý´«µ½catch×Ӿ䣬»òÕßÓÃnew²Ù×÷·ûÀ´´´½¨Ò»¸ö¡£ÏÂÃæÊÇthrowÓï¾äµÄͨ³£ÐÎʽ¡£
throwThrowableInstance£»
³ÌÐò»áÔÚthrowÓï¾äºóÁ¢¼´ÖÕÖ¹£¬ËüºóÃæµÄÓï¾äÖ´Ðв»µ½£¬È»ºóÔÚ°üº¬ËüµÄËùÓÐtry¿éÖдÓÀïÏòÍâÑ°ÕÒº¬ÓÐÓëÆäÆ¥ÅäµÄcatch×Ó¾äµÄtry¿é¡£ÏÂÃæÊÇÒ»¸öº¬ÓÐthrowÓï¾äµÄÀý×Ó¡£
classThrowDemo£ûstaticvoiddemoproc£¨£©£ûtry£ûthrownewNullPointerException£¨¡±de3mo¡±£©£»£ýcatch£¨NullPointerExceptione£©£ûSystem¡£out¡£println£¨¡±caughtinsidedemoproc¡±£©£»throwe£»£ý£ýpublicstaticvoidmain£¨Stringargs£§£§£©£ûtry£ûdemoproc£¨£©£»£ý
catch£¨NullPointerExceptione£©£ûsystem¡£out¡£println£¨¡±recaught£º¡±£«e£©£»£ý£ý£ý
8¡£8throwsÓï¾ä
throwsÓÃÀ´±êÃ÷Ò»¸ö³ÉÔ±º¯Êý¿ÉÄÜÅ׳öµÄ¸÷ÖÖ¡±Òì³£¡±¡£¶Ô´ó¶àÊýException×ÓÀàÀ´Ëµ£¬Java±àÒëÆ÷»áÇ¿ÆÈÄãÉùÃ÷ÔÚÒ»¸ö³ÉÔ±º¯ÊýÖÐÅ׳öµÄ¡±Òì³£¡±µÄÀàÐÍ¡£Èç¹û¡±Òì³£¡±µÄÀàÐÍÊÇError»òRuntimeException£¬»òËüÃǵÄ×ÓÀ࣬Õâ¸ö¹æÔò²»Æð×÷Óã¬ÒòΪÕ⣿copy£»ÔÚ³ÌÐòµÄÕý³£²¿·ÖÖÐÊDz»ÆÚ´ý³öÏֵġ£Èç¹ûÄãÏëÃ÷È·µØÅ׳öÒ»¸öRuntimeException£¬Äã±ØÐëÓÃthrowsÓï¾äÀ´ÉùÃ÷ËüµÄÀàÐÍ¡£Õâ¾ÍÖØж¨ÒåÁ˳ÉÔ±º¯Êý
µÄ¶¨ÒåÓï·¨£ºtypemethod¡­name£¨arg¡­list£©throwsexception¡­list£û£ý
ÏÂÃæÊÇÒ»¶Î³ÌÐò£¬ËüÅ׳öÁËÒ»¸ö¡±Òì³£¡±£¬µ«¼ÈûÓв¶×½Ëü£¬Ò²Ã»ÓÐÓÃthrowsÀ´ÉùÃ÷¡£ÕâÔÚ±àÒëʱ½«²»»áͨ¹ý¡£
classThrowsDemo1£ûstaticvoidprocedure£¨£©£§System¡£out¡£println£¨¡±inside
procedure¡±£©£»thrownewIllegalAccessException£¨¡±demo¡±£©£»£ýpublicstatic
voidmain£¨Stringargs£§£§£©£ûprocedure£¨£©£»£ý£ý
ΪÁËÈÃÕâ¸öÀý×Ó±àÒë¹ýÈ¥£¬ÎÒÃÇÐèÒªÉùÃ÷³ÉÔ±º¯ÊýprocedureÅ׳öÁËIllegalAccessException£¬²¢ÇÒÔÚµ÷ÓÃËüµÄ³ÉÔ±º¯ÊýmainÀﲶ׽Ëü¡£ÏÂÃæÊÇÕýÈ·µÄÀý×Ó£º
classThrowsDemo£ûstaticvoidprocedure£¨£©throwsIllegalAccessException
£ûSystem¡£out¡£println£¨¡±insideprocedure¡±£©£»thrownew
IllegalAccessException£¨¡±demo¡±£©£»£ýpublicstaticvoidmain£¨Stringargs£§£§£©
£ûtry£ûprocedure£¨£©£»£ýcatch£¨IllegalAccessExceptione£©
£ûSystem¡£out¡£println£¨¡±caught¡±£«e£©£»£ý£ý£ý
ÏÂÃæÊÇÊä³ö½á¹û£º
C£º¡·javaThrowsDemoinsideprocedurecaught
java¡£lang¡£IllegalAccessException£ºdemo
8¡£9finally
µ±Ò»¸ö¡±Òì³£¡±±»Å׳öʱ£¬³ÌÐòµÄÖ´ÐоͲ»ÔÙÊÇÏßÐԵģ¬Ìø¹ýij£¿copy£»ÐУ¬ÉõÖÁ»áÓÉÓÚûÓÐÓ룿reg£»Æ¥ÅäµÄcatch×Ó¾ä¶ø¹ýÔçµØ·µ»Ø¡£ÓÐʱȷ±£Ò»¶Î´úÂë²»¹Ü·¢Éúʲô¡±Òì³£¡±¶¼±»Ö´Ðе½ÊDZØÒªµÄ£¬¹Ø¼ü´Êfinally¾ÍÊÇÓÃÀ´±êʶÕâÑùÒ»¶Î´úÂëµÄ¡£¼´Ê¹ÄãûÓÐcatch×Ӿ䣬finally³ÌÐò¿éÒ²»áÔÚÖ´ÐÐtry³ÌÐò¿éºóµÄ³ÌÐò£¿reg£»Ç°Ö´ÐС£Ã¿¸ötryÓï¾ä¶¼ÐèÒªÖÁÉÙÒ»¸öÓ룿reg£»ÏàÅäµÄcatch×Ó¾ä»òfinally×Ӿ䡣һ¸ö³ÉÔ±º¯Êý·µ»Øµ½µ÷ÓÃËüµÄ³ÉÔ±º¯Êý£¬»òÕßͨ¹ýÒ»¸öû²¶×½µ½µÄ¡±Òì³£¡±£¬»òÕßͨ¹ýÒ»¸öÃ÷È·µÄreturnÓï¾ä£¬finally×Ó¾ä×ÜÊÇÇ¡ºÃÔÚ³ÉÔ±º¯Êý·µ»ØÇ°Ö´ÐС£ÏÂÃæÊÇÒ»¸öÀý×Ó£¬ËüÓм¸¸ö³ÉÔ±º¯Êý£¬Ã¿¸ö³ÉÔ±º¯ÊýÓò»Í¬µÄ;¾¶Í˳ö£¬µ«Ö´ÐÐÁËfinally×Ӿ䡣
classFinallyDemo£ûstaticvoidprocA£¨£©£ûtry
£ûSystem¡£out¡£println£¨¡±insideprocA¡±£©£»thrownew
RuntimeException£¨¡±demo¡±£©£»£ýfinally£ûSystem¡£out¡£println£¨¡±procA's
finally¡±£©£»£ý£ýstaticvoidprocB£¨£©£ûtry£ûSystem¡£out¡£println£¨¡±inside
procB¡±£©£»return£»£ýfinally£ûSystem¡£out¡£println£¨¡±procB'sfinally¡±£©£»£ý£ý
publicstaticvoidmain£¨Stringargs£§£§£©£ûtry£ûprocA£¨£©£»£ýcatch£¨Exception
e£©£»procB£¨£©£»£ý£ý
ÏÂÃæÊÇÕâ¸öÀý×ÓµÄÔËÐнá¹û£º
C£º¡·javaFinallyDemoinsideprocAprocA'sfinallyinsideprocBprocB'sfinally
±¾ÕÂС½á
1¡£¡±Òì³£¡±Ö¸µÄÊdzÌÐòÔËÐÐʱ³öÏֵķ

СÌáʾ£º°´ »Ø³µ [Enter] ¼ü ·µ»ØÊéÄ¿£¬°´ ¡û ¼ü ·µ»ØÉÏÒ»Ò³£¬ °´ ¡ú ¼ü ½øÈëÏÂÒ»Ò³¡£ ÔÞһϠÌí¼ÓÊéÇ©¼ÓÈëÊé¼Ü