programmeringsspråket Java tar ett undantag synsätt på hantering av feldetektering och hantering i koden . Snarare än att skapa ett komplext system av nästlade OM - else-uttryck för att försöka fånga alla möjliga fel , alla fel fånga kan organiseras i en serie av " try-catch " uttalanden i slutet av en funktion . Detta gör felkontroll för att komma ur vägen av programmets faktiska flödet och leder till mer läsbar , lättare att underhålla koden . Saker du behöver
Computer Review, Java Runtime Environment Review, Java Development Kit
textredigerare eller Java IDE
Visa fler instruktioner
1
Välj moderklass . Varje underklass av java.lang.Exception kan användas som förälder för ett nytt undantag klass . Men för det här exemplet ska du använda grundläggande Exception klassen som förälder . Undantag ger oss alla de grundläggande behoven för ett undantag : det är throwable , det kan skriva ut en stackspårning , och tillåter att ett meddelande hämtas om naturen av undantaget
2
Skapa en underklass som . utökar den överordnade klassen . Detta är detsamma som att alla andra subklass i Java . För bra kod läsbarhet , är det standard att alltid avsluta klassen med ordet " Exception " . För detta exempel , kommer du att bygga ett undantag för att hantera dåliga indata , kallas , helt enkelt nog , BadUserInputException .
Public class BadUserInputException utökar Exception { }
Denna kod ensam faktiskt ger dig allt du måste omedelbart börja kasta och fånga detta undantag , och i många fall kommer detta att vara allt du behöver . Addera 3
Lägg några unika egenskaper för din undantag . Du kanske vill att din undantaget klassen att ha några unika egenskaper utöver förmågan att kastas och fångas med en stackspårning skriva ut . Så kommer du lägga till några nya uppgifter till undantag klassen
public class BadUserInputException utökar Exception { private String inputString , .
Offentliga getInputString ( ) {return ( inputString ) ;}
offentliga BadUserInputException ( String input ) { super ( ) ; inputString = ingång; } ; }
nu kommer din undantag har en extra funktion , getInputString ( ) , som kan kallas när din undantag genereras till få en kopia av den dåliga användarens input i fråga som ska skrivas till en fellogg eller granskas av programmet för att avgöra vad man ska göra härnäst .
4
Lägg en throw-sats till funktioner som kan orsaka undantaget att inträffa. Ett undantag är värdelös om den kastas av någon funktion . En throw passerar i huvudsak ett fel upp i stacken för att möjliggöra en högre del av programmet för att avgöra vad som ska göras med den . Denna BadUserException kommer att kastas genom ett getUserInput ( ) funktionen , passande nog :
/*** Javadoc för getUserInput . Du vill nämna här * Denna funktion kastar en BadUserInputException * så att du vet att fånga det senare . * @ Throws BadUserInputException Om dålig ingång inträffar . * @ Return användarens input om inget undantag genereras . * /Public String getUserInput ( ) kastar BadUserInputException { BufferedReader i = new BufferedReader ( ny InputStreamReader ( System.in ) ) , String input = in.readLine ( ) , om ( validInput ( input ) kasta BadUserInputException ( ingång ) ; ! annars retur ingång; }
5
Lägg koden för att fånga undantaget när funktioner med den används detta gör att ditt program för att reagera på fel i ett rent kontrollerat sätt koden för att göra detta kommer att se ut så här enkelt exempel : . .
public void gameLoop ( ) { try { printMenu ( ) , String val = getUserInput ( ) , om ( choice.equals ( " Q " ) ) quit ( ) , annars fortsätter ( ) ;} catch ( BadUserIputException e ) { System.out . println ( " ERROR : " + e.getInputString ( ) + " : . är inte giltiga indata ) ;} } Addera