De programmeertaal Java is een uitzonderingen - gebaseerde benadering van omgaan met fouten opsporen en de behandeling in de code . Plaats van een nieuwe complex systeem van geneste if - else statements te proberen om elke mogelijke fout , alles fout vangen kunnen worden georganiseerd in een reeks van "try - catch " verklaringen aan het einde van een functie te vangen . Dit maakt fout controle om uit de weg van de programma 's werkelijke flow en leidt tot meer leesbare , makkelijker te onderhouden code . Wat je nodig hebt Computer Java Runtime Environment Java Development Kit tekst editor of Java IDE Toon Meer Aanwijzingen 1 Kies een bovenliggende klasse . Elke subklasse van java.lang.Exception kan worden gebruikt als de ouder van een nieuwe exceptionklasse . Echter , voor dit voorbeeld , zul je de basis- Exception klasse als ouder gebruiken . Uitzondering geeft ons alle basisbehoeften van een uitzondering : het is throwable , het kan een stack trace af te drukken , en laat een bericht om te worden opgehaald over de aard van de uitzondering kopen van 2 Maak een subklasse die . breidt die ouder klasse . Dit is hetzelfde als het creëren van andere subklasse in Java . Voor een goede leesbaarheid van de code , is het standaard om altijd eindigen de klas naam met het woord " Uitzondering " . In dit voorbeeld zie je een uitzondering voor de behandeling van slechte input van de gebruiker , genaamd , eenvoudig genoeg , BadUserInputException bouwen . Public class BadUserInputException breidt Exception { } Deze code alleen al geeft je eigenlijk alles wat je moeten onmiddellijk beginnen met het gooien en vangen van deze uitzondering , en in veel gevallen , zal dit alles wat je nodig hebt . 3 Voeg eventuele unieke functies voor uw uitzondering . Misschien wilt uw uitzondering klasse om een aantal unieke eigenschappen die verder gaan dan de mogelijkheid om te worden geworpen en gevangen met een stack trace uitprinten hebben . Dus , zal je wat nieuwe informatie toe te voegen aan uw uitzondering klas public class BadUserInputException breidt Uitzondering {private String inputString ; . Openbare getInputString ( ) { return ( inputString ) ; } openbare BadUserInputException ( String input) { super ( ) ; inputString = ingang; } ; } Nu zal je behalve een extra functie hebben , getInputString ( ) , die op elk moment uw uitzondering kan worden opgeroepen wordt geworpen op krijgen een kopie van de slechte input van de gebruiker in kwestie te worden afgedrukt op een error log of onderzocht door het programma om te bepalen wat te doen . 4 Voeg een worp verklaring aan functies die de uitzondering kan veroorzaken optreden . Een uitzondering is waardeloos tenzij het wordt gegooid door een functie . Een worp verklaring gaat in wezen een fout van de stapel om een hoger niveau onderdeel van het programma om te bepalen wat er moet gebeuren met het. Dit BadUserException wordt gegooid door een getUserInput ( ) -functie , toepasselijk genoeg : /*** Javadoc voor getUserInput . U wilt hier te vermelden * Deze functie genereert een BadUserInputException * , zodat u weet om het later te vangen . * @ Throws BadUserInputException Als slechte ingang optreedt . * @ Return invoer van de gebruiker , indien er geen uitzondering wordt gegooid . * /Public String getUserInput ( ) gooit BadUserInputException { BufferedReader in = new BufferedReader (nieuw InputStreamReader ( System.in ) ) ; String invoer = in.readLine ( ) if ( validInput ( input) werpen BadUserInputException (input ) ; ! anders return -ingang ; } 5 Voeg code om de uitzondering als functies het gebruik ervan worden gebruikt vangen Hierdoor kan uw programma te reageren op fouten in een netjes gecontroleerde manier de code om dit te doen zal er als volgt uitzien eenvoudig voorbeeld : . . public void gameLoop ( ) { try { printMenu ( ) ; Snaarkeuze = getUserInput ( ) if ( choice.equals ( " Q " ) ) quit ( ) ; anders blijven ( ) ;} catch ( BadUserIputException e ) { System.out . println ( " FOUT : " + e.getInputString ( ) + " : . is geen geldige invoer ) ; } }
|