Hvordan håndtere egendefinerte unntak i Java?



Denne artikkelen vil hjelpe deg med å forstå tilpassede unntak i Java, og den vil støtte forklaringen med praktisk demonstrasjon av konseptet.

gir brukeren muligheten til å lage sine egne unntak. Slike unntak er kjent som egendefinerte unntak eller brukerdefinerte unntak. I denne artikkelen vil vi utforske tilpassede unntak i Java.

Følgende tips vil bli dekket i denne artikkelen,





Komme i gang denne artikkelen om tilpassede unntak i Java.

Egendefinerte unntak i Java

Egendefinerte unntak kan opprettes som følger,



[Java]
// klasse som representerer brukerdefinert unntak
klasse InvalidAgeException utvider unntak {
InvalidAgeException (String s) {
super (er)
}
}
[/ java]

// klasse som bruker InvalidAgeException class Test {static void validate (int age) kaster InvalidAgeException {if (age<18) throw new InvalidAgeException('Invalid') else System.out.println('Eligible to Drive') } public static void main(String args[]){ try{ validate(15) }catch(Exception m){System.out.println('Exception: '+m)} System.out.println('Exit') } } 

Produksjon:

Unntak: InvalidAgeException: Invalid



Exit

Fortsetter med denne artikkelen om tilpassede unntak i Java.

Behov for tilpassede unntak

Ofte finner programmereren behovet for å spesifisere sitt eget unntak.

Årsakene til å innføre disse unntakene kan være som følger:

  • Det er visse unntak som bare er definert for forretningslogikk og arbeidsflyt. Dette gjør det mulig for brukerne å bestemme kilden til problemet.
  • Å fange og håndtere eksisterende eller tidligere definerte java-unntak.

Java gir brukeren to unntak:

  • Skreddersydd unntak
  • Egendefinert unchecked unntak

Fortsetter med denne artikkelen om tilpassede unntak i Java.

Skreddersydde unntak

De spesialtilpassede unntakene er unntak som utvider java.lang.Exception. De er utvinnbare og håndteres eksplisitt. I det følgende eksemplet skrives en kode for å returnere den første linjen i filen som utdata:

prøv (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {}

Koden kaster unntaket FileNotFound. Årsaken til dette unntaket er ukjent for brukeren. Vi er ikke klar over kilden til unntaket, enten det er forårsaket på grunn av at filen ikke eksisterer, eller på grunn av et ugyldig filnavn. For å implementere tilpasset unntak utvides klassen java.lang.Exception.

offentlig klasse InvalidFileNameException utvider unntak {public InvalidFileNameException (streng errorMessage) {super (errorMessage)}}

Et tilpasset kontrollert unntak kalt InvalidFileNameException er opprettet.

En konstruktør må skaffes mens du oppretter unntaket. I vårt tilfelle tar konstruktøren String som feilmelding, og kaller konstruktøren for overordnet klasse.

prøv (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ( 'Ugyldig filnavn:' + filnavn)}}

Selv om brukeren nå er klar over det eksakte unntaket, har vi mistet grunnårsaken til unntaket. Dette kan løses ved å legge til java.lang.Trowable til konstruktøren. InvalidFileNameException kan nå brukes med grunnårsaken til unntaket:

public InvalidFileNameException (String errorMessage, Throwable err) {super (errorMessage, err)}

Fortsetter med denne artikkelen om tilpassede unntak i Java

c ++ פיב-serie

Tilpassede unchecked unntak

De spesialtilpassede unntakene utvider java.lang.RuntimeException. De er uopprettelige i naturen.

offentlig klasse InvalidFileExtensionException utvider RuntimeException {public InvalidFileExtensionException (String errorMessage, Throwable err) {super (errorMessage, err)}}

Dette unntaket brukes som følger:

prøv (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) {return file.nextLine ()} else {throw new IllegalArgumentException ('File is not readable.')}} fangst ( FileNotFoundException err) {if (! IsCorrectFileName (fileName)) {throw new InvalidFileNameException ('Ugyldig filnavn:' + fileName, err)}} fangst (IllegalArgumentException err) {if (! ContainExtension (fileName)) {throw new InvalidFileExtensionExcame har ingen utvidelse: '+ filnavn, err)}}

Brukerdefinerte unntak er essensielle da de gjør det mulig for oss å definere unntak som er våre egne.

Dermed har vi kommet til en slutt på denne artikkelen. Hvis du ønsker å lære mer, kan du sjekke Java Training av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.