°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 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£¨£©¡¡
µÄÎ¥Àý½Ó¿Ú¡£Í¬ÑùµØ£¬ÕâÖÖÉè¼