Java -språket er konstruert for å håndtere feil og andre uventede hendelser ved hjelp av et unntak konsept. Når en feil oppstår , er et unntak objekt generert og bestått ( eller kastet ) opp samtalen stabelen til den finner en metode utviklet for å håndtere ( eller ta ) som unntak. Java kommer med dusinvis av unntak objekter, men programmerere kan også lage sine egne. Definere en tilpasset Exception klasse
Custom unntak er definert i nøyaktig samme måte som alle andre Java-klassen . Den eneste viktig regel er at et unntak må forlenge Unntak klasse i java.lang biblioteket. Dette gjøres på samme måte som enhver annen klasse strekker annen. Et eksempel på en brukerdefinert unntaket vil være : en
klasse MyException strekker Exception {
}
Du kan legge til dine egne metoder og konstruktører til din unntak klassen for å tilpasse den til ditt formål , men bare ved å utvide basen klassen du vil få standard unntak konstruktører og metoder , inkludert muligheten til å definere feilmeldinger.
Kaster en Custom Unntak
< p > For å bruke den egendefinerte unntak, må du kaste den et sted i programmet , det samme som alle andre unntaket . For eksempel illustrerer følgende trivielt eksempel hvordan å kaste et unntak for å hindre en metode fra dividere med null : en
public double skillet ( dobbelt utbytte , dobbel divisor ) kaster MyException {
if ( divisor == 0 ) throw new MyException ( " divisjon med null forsøkt ! ");
retur utbytte /divisor ;
}
problemet sjekker for å se om divisor er lik null. Hvis det er, så en ny MyException objekt opprettes og kastet med en passende feilmelding . Den delen av programmet som kalles "dele "-funksjonen vil da være ansvarlig for å avgjøre hvordan man skal håndtere unntak .
Hvorfor bruke Unntak ?
Feil kontroll er en viktig del av ethvert program . Selv om programmerer arbeid er perfekt, er input fra brukeren , det lokale filsystemet og Internett sjelden , om noensinne, må perfekt, så programmene være forberedt på å håndtere problemer . Ofte er imidlertid en del av den kode som finner problemet ikke den del av koden best egnet til å håndtere problemet . En funksjon som deler et avsnitt med tekst inn ord bør ideelt sett ikke trenger å bekymre deg om en tomt avsnitt er en feil som må lukke programmet , en merkelig hendelse som skal rapporteres til brukeren, eller irrelevant . Unntak tillate det å rapportere problemet til andre deler av programmet som er bedre egnet til å korrigere det .
Hvorfor bruke Custom Unntak ?
Java kommer med dusinvis av unntak klasser forhåndsdefinerte , men noen ganger hjelper det å ha et sett med unntak som bedre passer problemet på hånden , slik at programmet kan lettere reagerer på dem . For eksempel , i stedet for Java generiske " InvalidArugmentException , " den delen av koden ansvarlig for å utvinne fra feil kan trenger å vite mer detaljert om problemet . Dette kan gjøres ved å dele unntak i custom " UnexpectedNullArgumentException " og " OutOfRangeException . "