Java programmeringsspråk tar et unntak tilnærming til håndtering av feilregistrering og håndtering i koden . Snarere enn å lage et komplekst system av nestet hvis - else-påstandene for å prøve å fange alle mulige feil, feil fanger kan organiseres i en rekke " try-catch " uttalelser på slutten av en funksjon. Dette gjør feil kontroll for å komme seg ut av veien av programmet faktiske strøm og fører til mer lesbar , enklere å vedlikeholde kode . Du trenger
Computer
Java Runtime Environment
Java Development Kit
tekst editor eller Java IDE
Vis flere instruksjoner
en
Velg en overordnede klassen . Enhver underklasse av java.lang.Exception kan brukes som den overordnede for en ny klasse unntak . Men for dette eksempelet , vil du bruke den grunnleggende Unntak klassen som en forelder. Unntaket gir oss alle de grunnleggende nødvendigheter av et unntak : det er throwable , den kan skrive ut en stabel spor , og lar en melding som skal hentes om innholdet av unntaket
2
Lag en underklasse som . utvider det overordnede klassen . Dette er det samme som å lage noen annen underklasse i Java. For god kode lesbarhet , er det standard å alltid ende klassen navn med ordet " unntak" . For dette eksempelet , vil du bygge et unntak for håndtering av dårlig brukerundersøkelser, kalt , rett og slett nok , BadUserInputException .
Public class BadUserInputException strekker Exception { }
Denne koden alene faktisk gir deg alt du må umiddelbart starte å kaste og fange dette unntaket , og i mange tilfeller vil dette være alt du trenger .
3
Legg noen unike funksjoner for unntak ditt . Du ønsker kanskje din unntak klassen til å ha noen unike funksjoner utover evnen til å bli kastet og fanget med en stakksporingen skrive ut . Så, vil du legge til noen ny informasjon til unntak klassen
public class BadUserInputException strekker Exception {private String inputString ; .
Offentlig getInputString ( ) {return ( inputString ) ;}
< p> public BadUserInputException ( String inn) { super (); inputString = inngang ;} ;}
nå vil unntak har en ekstra funksjon, getInputString (), som kan kalles når som helst unntak ditt blir kastet til få en kopi av den dårlige brukerundersøkelser i spørsmålet som skal skrives av en feil loggen eller undersøkt av programmet for å finne ut hva de skal gjøre videre.
4
Legg et innkast uttalelse til funksjoner som kan føre til unntak å oppstå . Et unntak er verdiløs hvis det blir kastet av noen funksjon . En kaste uttalelse går i hovedsak en feil opp bunken for å tillate en høyere del av programmet for å finne ut hva som bør gjøres med den. Dette BadUserException vil bli kastet av en getUserInput ( )-funksjonen , passende nok : en
/*** Javadoc for getUserInput . Du ønsker å nevne her * at denne funksjonen kaster en BadUserInputException * slik at du vet å ta det senere . * @ Kaster BadUserInputException Hvis dårlig inngang oppstår . * @ Returnere brukerens input hvis ingen unntak. * /Public String getUserInput ( ) throws BadUserInputException { BufferedReader i = new BufferedReader ( ny InputStreamReader ( System.in )); String inngang = in.readLine (); if ( validInput (inngang ) kaste BadUserInputException ( input); ! else return innspill ;}
5
Legg kode for å fange unntak når funksjoner ved hjelp av den blir brukt dette vil tillate programmet å reagere på feil i en ren kontrollert måte koden å gjøre dette vil se slik ut enkelt eksempel : . .
public void gameLoop ( ) { try { printMenu (); String valg = getUserInput (); if ( choice.equals ( "Q ")) quit ( ) , ellers fortsette ( ) ;} catch ( BadUserIputException e ) { System.out . println ( "FEIL: " + e.getInputString ( ) + ": . ikke er gyldig input); } }