Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
nadradenej triedy . Akákoľvek podtrieda java.lang.Exception môžu byť použité ako rodičia pre novú triedu výnimiek . Avšak , v tomto príklade , budete používať základné triedy Exception ako rodič . Výnimka nám dáva všetky základné nevyhnutnosti výnimkou : . Je Throwable , je možné vytlačiť trasovanie zásobníka a umožňuje správy, ktoré majú byť vyvolané o povahe výnimky
2
vytvoriť podtriedu , ktorá rozširuje túto rodičovskú triedu . To je rovnaké ako vytváranie akékoľvek iné podtriedy v Jave . Pre dobrú čitateľnosť kódu , je štandardné pre vždy ukončiť názov triedy sa slovom " Exception " . V tomto príklade , budete stavať výnimku pre manipuláciu zlý vstup užívateľa , názvom , dosť jednoducho , BadUserInputException .
Public class BadUserInputException rozširuje výnimka { }
tento kód sám vlastne dáva vám všetko , čo je potrebné okamžite začína hádzanie a chytanie túto výnimku , a v mnohých prípadoch , to bude všetko , čo potrebujete .
3
Pridať všetky jedinečné funkcie pre výnimku. Možno budete chcieť vaše výnimkou triedy majú niektoré unikátne vlastnosti , ktoré presahujú schopnosť byť vyhodený a chytil sa stack trace vytlačiť . Takže , pridáte nejaké nové informácie do výnimiek triede
public class BadUserInputException rozširuje Výnimka { private String inputString ; .
Verejné getInputString ( ) { return ( inputString ) ; }
public BadUserInputException ( String vstup ) { super ( ) ; inputString = vstup ; } ; }
Teraz je váš výnimka bude mať ďalšiu funkciu , getInputString ( ) , ktorá môže byť volaná kedykoľvek vaše výnimka pre dostať kópiu zlý vstup užívateľa v otázke , ktoré majú byť vytlačené na protokole chýb alebo skúmaná v rámci programu určiť , čo robiť ďalej .
4
Pridať príkaz throw , na funkcie , ktoré môžu spôsobiť výnimku nastať . Výnimkou je k ničomu , ak je vyvolaná nejakú funkciu . Throw v podstate prechádza chybu až zásobníka umožniť súčasťou vyššiu úroveň programu , ktorý má zistiť , čo by sa malo urobiť s ním . Tento BadUserException bude vyvolaná funkcie a getUserInput ( ) , primerane dosť :
/*** Javadoc pre getUserInput . Chcete tu spomenúť , * že táto funkcia hodí BadUserInputException * , takže viete , že to sa neskôr . * @ Throws BadUserInputException Ak dôjde zlý vstup . * @ Return vstup užívateľa , ak žiadna výnimka . * /Public String getUserInput ( ) throws BadUserInputException { BufferedReader v = new BufferedReader ( nový InputStreamReader ( System.in ) ) ; String vstup = in.readLine ( ) ; if ( validInput ( vstup ) hádzať BadUserInputException ( vstup ) , inak návrat vstup ; }
. 5
Pridať kódu chytiť výnimku pri použití funkcie používajú ju To umožní , aby váš program reagovať na chyby v čisto riadene kód k tomu bude vyzerať tento jednoduchý príklad : .
public void gameLoop ( ) { try { printMenu ( ) ; String voľba = getUserInput ( ) ; if ( choice.equals ( " Q " ) ) quit ( ) , inak pokračovať ( ) ; } catch ( BadUserIputException e ) { System.out . println ( " ERROR : " + e.getInputString ( ) + " : . nie je platný vstup ) ; } }