ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡ÔĶÁ¹ý³Ì·¢ÏÖÈκδíÎóÇë¸æËßÎÒÃÇ£¬Ð»Ð»£¡£¡ ±¨¸æ´íÎó
Ò»ÊÀÊé³Ç ·µ»Ø±¾ÊéĿ¼ ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ½øÈëÊé°É ¼ÓÈëÊéÇ©

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ94ÕÂ

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨Throwing¡¡MyException¡¡from¡¡g£¨£©¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡throw¡¡new¡¡MyException£¨¡¨Originated¡¡in¡¡g£¨£©¡¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡271¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡273¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡f£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨MyException¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡g£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨MyException¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

¼Ì³ÐÔÚ´´½¨ÐÂÀàʱ·¢Éú£º¡¡¡¡

¡¡¡¡

class¡¡MyException¡¡extends¡¡Exception¡¡£û¡¡¡¡

¡¡¡¡public¡¡MyException£¨£©¡¡£û£ý¡¡¡¡

¡¡¡¡public¡¡MyException£¨String¡¡msg£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨msg£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

ÕâÀïµÄ¹Ø¼üÊÇ¡°extends¡¡Exception¡±£¬ËüµÄÒâ˼ÊÇ£º³ý°üÀ¨Ò»¸öException¡¡µÄÈ«²¿º¬ÒåÒÔÍ⣬»¹Óиü¶àµÄº¬¡¡

Òå¡£Ôö¼ÓµÄ´úÂëÊýÁ¿·Ç³£ÉÙ¡ª¡ªÊµ¼ÊÖ»Ìí¼ÓÁËÁ½¸ö¹¹½¨Æ÷£¬¶Ô¡¡MyException¡¡µÄ´´½¨·½Ê½½øÐÐÁ˶¨Òå¡£Çë¼Ç¡¡

ס£¬¼ÙÈçÎÒÃDz»Ã÷È·µ÷ÓÃÒ»¸ö»ù´¡À๹½¨Æ÷£¬±àÒëÆ÷»á×Ô¶¯µ÷Óûù´¡ÀàĬÈϹ¹½¨Æ÷¡£ÔÚµÚ¶þ¸ö¹¹½¨Æ÷ÖУ¬Í¨¡¡

¹ýʹÓá¡super¡¡¹Ø¼ü×Ö£¬Ã÷È·µ÷ÓÃÁË´øÓÐÒ»¸ö¡¡String¡¡²ÎÊýµÄ»ù´¡À๹½¨Æ÷¡£¡¡¡¡

¸Ã³ÌÐòÊä³ö½á¹ûÈçÏ£º¡¡¡¡

¡¡¡¡

Throwing¡¡MyException¡¡from¡¡f£¨£©¡¡¡¡

MyException¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting¡£f£¨Inheriting¡£java£º16£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting¡£main£¨Inheriting¡£java£º24£©¡¡¡¡

Throwing¡¡MyException¡¡from¡¡g£¨£©¡¡¡¡

MyException£º¡¡Originated¡¡in¡¡g£¨£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting¡£g£¨Inheriting¡£java£º20£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting¡£main£¨Inheriting¡£java£º29£©¡¡¡¡

¡¡¡¡

¿ÉÒÔ¿´µ½£¬ÔÚ´Óf£¨£©¡¡¡°ÖÀ¡±³öµÄMyException¡¡Î¥ÀýÖУ¬È±·¦ÏêϸµÄÏûÏ¢¡£¡¡¡¡

´´½¨×Ô¼ºµÄÎ¥Àýʱ£¬»¹¿ÉÒÔ²ÉÈ¡¸ü¶àµÄ²Ù×÷¡£ÎÒÃÇ¿ÉÌí¼Ó¶îÍâµÄ¹¹½¨Æ÷¼°³ÉÔ±£º¡¡¡¡

¡¡¡¡

//£º¡¡Inheriting2¡£java¡¡¡¡

//¡¡Inheriting¡¡your¡¡own¡¡exceptions¡¡¡¡

¡¡¡¡

class¡¡MyException2¡¡extends¡¡Exception¡¡£û¡¡¡¡

¡¡¡¡public¡¡MyException2£¨£©¡¡£û£ý¡¡¡¡

¡¡¡¡public¡¡MyException2£¨String¡¡msg£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨msg£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡MyException2£¨String¡¡msg£»¡¡int¡¡x£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨msg£©£»¡¡¡¡

¡¡¡¡¡¡¡¡i¡¡=¡¡x£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡int¡¡val£¨£©¡¡£û¡¡return¡¡i£»¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡272¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡274¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡private¡¡int¡¡i£»¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡Inheriting2¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡f£¨£©¡¡throws¡¡MyException2¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨Throwing¡¡MyException2¡¡from¡¡f£¨£©¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡throw¡¡new¡¡MyException2£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡g£¨£©¡¡throws¡¡MyException2¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨Throwing¡¡MyException2¡¡from¡¡g£¨£©¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡throw¡¡new¡¡MyException2£¨¡¨Originated¡¡in¡¡g£¨£©¡¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡h£¨£©¡¡throws¡¡MyException2¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨Throwing¡¡MyException2¡¡from¡¡h£¨£©¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡throw¡¡new¡¡MyException2£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨Originated¡¡in¡¡h£¨£©¡¨£»¡¡47£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡f£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨MyException2¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡g£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨MyException2¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡h£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨MyException2¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨e¡£val£¨£©¡¡=¡¡¡¨¡¡£«¡¡e¡£val£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

´ËʱÌí¼ÓÁËÒ»¸öÊý¾Ý³ÉÔ±¡¡i£»Í¬Ê±Ìí¼ÓÁËÒ»¸öÌØÊâµÄ·½·¨£¬ÓÃËü¶ÁÈ¡ÄǸöÖµ£»Ò²Ìí¼ÓÁËÒ»¸ö¶îÍâµÄ¹¹½¨Æ÷£¬¡¡

ÓÃËüÉèÖÃÄǸöÖµ¡£Êä³ö½á¹ûÈçÏ£º¡¡¡¡

¡¡¡¡

Throwing¡¡MyException2¡¡from¡¡f£¨£©¡¡¡¡

MyException2¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting2¡£f£¨Inheriting2¡£java£º22£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting2¡£main£¨Inheriting2¡£java£º34£©¡¡¡¡

Throwing¡¡MyException2¡¡from¡¡g£¨£©¡¡¡¡

MyException2£º¡¡Originated¡¡in¡¡g£¨£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting2¡£g£¨Inheriting2¡£java£º26£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting2¡£main£¨Inheriting2¡£java£º39£©¡¡¡¡

Throwing¡¡MyException2¡¡from¡¡h£¨£©¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡273¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡275¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

MyException2£º¡¡Originated¡¡in¡¡h£¨£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting2¡£h£¨Inheriting2¡£java£º30£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡at¡¡Inheriting2¡£main£¨Inheriting2¡£java£º44£©¡¡¡¡

e¡£val£¨£©¡¡=¡¡47¡¡¡¡

¡¡¡¡

ÓÉÓÚÎ¥Àý²»¹ýÊÇÁíÒ»ÖÖÐÎʽµÄ¶ÔÏó£¬ËùÒÔ¿ÉÒÔ¼ÌÐøÕâ¸ö½ø³Ì£¬½øÒ»²½ÔöÇ¿Î¥ÀýÀàµÄÄÜÁ¦¡£µ«Òª×¢Ò⣬¶ÔʹÓá¡

×Ô¼ºÕâ¸ö°üµÄ¿Í»§³ÌÐòÔ±À´Ëµ£¬ËûÃÇ¿ÉÄÜ´í¹ýËùÓÐÕâЩÔöÇ¿¡£ÒòΪËûÃÇ¿ÉÄÜÖ»ÊǼòµ¥µØÑ°ÕÒ×¼±¸Éú³ÉµÄÎ¥¡¡

Àý£¬³ý´ËÒÔÍâ²»×öÈκÎÊÂÇ顪¡ªÕâÊÇ´ó¶àÊý¡¡Java¡¡¿âÎ¥ÀýµÄ±ê×¼Ó÷¨¡£Èô³öÏÖÕâÖÖÇé¿ö£¬ÓпÉÄÜ´´½¨Ò»¸öÐÂÎ¥¡¡

ÀýÀàÐÍ£¬ÆäÖм¸ºõ²»°üº¬ÈκδúÂ룺¡¡¡¡

//£º¡¡SimpleException¡£java¡¡¡¡

class¡¡SimpleException¡¡extends¡¡Exception¡¡£û¡¡¡¡

£ý¡¡///£º~¡¡¡¡

ËüÒªÒÀÀµ±àÒëÆ÷À´´´½¨Ä¬ÈϹ¹½¨Æ÷£¨»á×Ô¶¯µ÷Óûù´¡ÀàµÄĬÈϹ¹½¨Æ÷£©¡£µ±È»£¬ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃDz»»áµÃ¡¡

µ½Ò»¸öSimpleException£¨String£©¹¹½¨Æ÷£¬µ«Ëüʵ¼ÊÉÏÒ²²»»á¾­³£Óõ½¡£¡¡¡¡



9¡£5¡¡Î¥ÀýµÄÏÞÖÆ¡¡¡¡



¸²¸ÇÒ»¸ö·½·¨Ê±£¬Ö»ÄܲúÉúÒÑÔÚ·½·¨µÄ»ù´¡Àà°æ±¾Öж¨ÒåµÄÎ¥Àý¡£ÕâÊÇÒ»¸öÖØÒªµÄÏÞÖÆ£¬ÒòΪËüÒâζ×ÅÓë»ù¡¡

´¡ÀàЭͬ¹¤×÷µÄ´úÂëÒ²»á×Ô¶¯Ó¦ÓÃÓÚ´Ó»ù´¡ÀàÑÜÉúµÄÈκζÔÏ󣨵±È»£¬ÕâÊôÓÚ»ù±¾µÄ¡¡OOP¡¡¸ÅÄ£¬ÆäÖаüÀ¨¡¡

Î¥Àý¡£¡¡¡¡

ÏÂÃæÕâ¸öÀý×ÓÑÝʾÁËÇ¿¼ÓÔÚÎ¥ÀýÉíÉϵÄÏÞÖÆÀàÐÍ£¨ÔÚ±àÒëÆÚ£©£º¡¡¡¡

¡¡¡¡

//£º¡¡StormyInning¡£java¡¡¡¡

//¡¡Overridden¡¡methods¡¡may¡¡throw¡¡only¡¡the¡¡¡¡¡¡

//¡¡exceptions¡¡specified¡¡in¡¡their¡¡base¡­class¡¡¡¡¡¡

//¡¡versions£»¡¡or¡¡exceptions¡¡derived¡¡from¡¡the¡¡¡¡¡¡

//¡¡base¡­class¡¡exceptions¡£¡¡¡¡

¡¡¡¡

class¡¡BaseballException¡¡extends¡¡Exception¡¡£û£ý¡¡¡¡

class¡¡Foul¡¡extends¡¡BaseballException¡¡£û£ý¡¡¡¡

class¡¡Strike¡¡extends¡¡BaseballException¡¡£û£ý¡¡¡¡

¡¡¡¡

abstract¡¡class¡¡Inning¡¡£û¡¡¡¡

¡¡¡¡Inning£¨£©¡¡throws¡¡BaseballException¡¡£û£ý¡¡¡¡

¡¡¡¡void¡¡event¡¡£¨£©¡¡throws¡¡BaseballException¡¡£û¡¡¡¡

¡¡¡¡¡¡//¡¡Doesn't¡¡actually¡¡have¡¡to¡¡throw¡¡anything¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡abstract¡¡void¡¡atBat£¨£©¡¡throws¡¡Strike£»¡¡Foul£»¡¡¡¡

¡¡¡¡void¡¡walk£¨£©¡¡£û£ý¡¡//¡¡Throws¡¡nothing¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡StormException¡¡extends¡¡Exception¡¡£û£ý¡¡¡¡

class¡¡RainedOut¡¡extends¡¡StormException¡¡£û£ý¡¡¡¡

class¡¡PopFoul¡¡extends¡¡Foul¡¡£û£ý¡¡¡¡

¡¡¡¡

interface¡¡Storm¡¡£û¡¡¡¡

¡¡¡¡void¡¡event£¨£©¡¡throws¡¡RainedOut£»¡¡¡¡

¡¡¡¡void¡¡rainHard£¨£©¡¡throws¡¡RainedOut£»¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡StormyInning¡¡extends¡¡Inning¡¡¡¡¡¡

¡¡¡¡¡¡¡¡implements¡¡Storm¡¡£û¡¡¡¡

¡¡¡¡//¡¡OK¡¡to¡¡add¡¡new¡¡exceptions¡¡for¡¡constructors£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡274¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡276¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡//¡¡but¡¡you¡¡must¡¡deal¡¡with¡¡the¡¡base¡¡constructor¡¡¡¡

¡¡¡¡//¡¡exceptions£º¡¡¡¡

¡¡¡¡StormyInning£¨£©¡¡throws¡¡RainedOut£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡BaseballException¡¡£û£ý¡¡¡¡

¡¡¡¡StormyInning£¨String¡¡s£©¡¡throws¡¡Foul£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡BaseballException¡¡£û£ý¡¡¡¡

¡¡¡¡//¡¡Regular¡¡methods¡¡must¡¡conform¡¡to¡¡base¡¡class£º¡¡¡¡

//£¡¡¡void¡¡walk£¨£©¡¡throws¡¡PopFoul¡¡£û£ý¡¡//pile¡¡error¡¡¡¡

¡¡¡¡//¡¡Interface¡¡CANNOT¡¡add¡¡exceptions¡¡to¡¡existing¡¡¡¡

¡¡¡¡//¡¡methods¡¡from¡¡the¡¡base¡¡class£º¡¡¡¡

//£¡¡¡public¡¡void¡¡event£¨£©¡¡throws¡¡RainedOut¡¡£û£ý¡¡¡¡

¡¡¡¡//¡¡If¡¡the¡¡method¡¡doesn't¡¡already¡¡exist¡¡in¡¡the¡¡¡¡

¡¡¡¡//¡¡base¡¡class£»¡¡the¡¡exception¡¡is¡¡OK£º¡¡¡¡

¡¡¡¡public¡¡void¡¡rainHard£¨£©¡¡throws¡¡RainedOut¡¡£û£ý¡¡¡¡

¡¡¡¡//¡¡You¡¡can¡¡choose¡¡to¡¡not¡¡throw¡¡any¡¡exceptions£»¡¡¡¡

¡¡¡¡//¡¡even¡¡if¡¡base¡¡version¡¡does£º¡¡¡¡

¡¡¡¡public¡¡void¡¡event£¨£©¡¡£û£ý¡¡¡¡

¡¡¡¡//¡¡Overridden¡¡methods¡¡can¡¡throw¡¡¡¡¡¡

¡¡¡¡//¡¡inherited¡¡exceptions£º¡¡¡¡

¡¡¡¡void¡¡atBat£¨£©¡¡throws¡¡PopFoul¡¡£û£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡StormyInning¡¡si¡¡=¡¡new¡¡StormyInning£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡si¡£atBat£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨PopFoul¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨RainedOut¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨BaseballException¡¡e£©¡¡£û£ý¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Strike¡¡not¡¡thrown¡¡in¡¡derived¡¡version¡£¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡What¡¡happens¡¡if¡¡you¡¡upcast£¿¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡Inning¡¡i¡¡=¡¡new¡¡StormyInning£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i¡£atBat£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡You¡¡must¡¡catch¡¡the¡¡exceptions¡¡from¡¡the¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡base¡­class¡¡version¡¡of¡¡the¡¡method£º¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨Strike¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨Foul¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨RainedOut¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨BaseballException¡¡e£©¡¡£û£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

ÔÚ¡¡Inning¡¡ÖУ¬¿ÉÒÔ¿´µ½ÎÞÂÛ¹¹½¨Æ÷»¹ÊÇevent£¨£©·½·¨¶¼Ö¸³ö×Ô¼º»á¡°ÖÀ¡±³öÒ»¸öÎ¥Àý£¬µ«ËüÃÇʵ¼ÊÉÏûÓÐÄÇ¡¡

Ñù×ö¡£ÕâÊǺϷ¨µÄ£¬ÒòΪËüÔÊÐíÎÒÃÇÇ¿ÆÈÓû§²¶»ñ¿ÉÄÜÔÚ¸²¸Ç¹ýµÄevent£¨£©°æ±¾ÀïÌí¼ÓµÄÈκÎÎ¥Àý¡£Í¬ÑùµÄ¡¡

µÀÀíÒ²ÊÊÓÃÓÚabstract¡¡·½·¨£¬¾ÍÏóÔÚ¡¡atBat£¨£©ÀïչʾµÄÄÇÑù¡£¡¡¡¡

¡¡¡°interface¡¡Storm¡±·Ç³£ÓÐȤ£¬ÒòΪËü°üº¬ÁËÔÚ¡¡Ining¡¡Öж¨ÒåµÄÒ»¸ö·½·¨¡ª¡ªevent£¨£©£¬ÒÔ¼°²»ÊÇÔÚÆäÖС¡

¶¨ÒåµÄÒ»¸ö·½·¨¡£ÕâÁ½¸ö·½·¨¶¼»á¡°ÖÀ¡±³öÒ»¸öеÄÎ¥ÀýÀàÐÍ£ºRainedOut¡£µ±Ö´Ðе½¡°StormyInning¡¡¡¡

extends¡±ºÍ¡°implements¡¡Storm¡±µÄʱºò£¬¿ÉÒÔ¿´µ½Storm¡¡ÖеÄevent£¨£©·½·¨²»Äܸı䡡InningÖеÄevent£¨£©¡¡

µÄÎ¥Àý½Ó¿Ú¡£Í¬ÑùµØ£¬ÕâÖÖÉè¼
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡