Hvordan håndteres brugerdefinerede undtagelser i Java?

Denne artikel hjælper dig med at forstå brugerdefinerede undtagelser i Java, og den understøtter forklaringen med praktisk demonstration af konceptet.

giver brugeren mulighed for at oprette sine egne undtagelser. Sådanne undtagelser er kendt som brugerdefinerede undtagelser eller brugerdefinerede undtagelser. I denne artikel vil vi undersøge brugerdefinerede undtagelser i Java.



Følgende punkter vil blive dækket i denne artikel,



Kom godt i gang denne artikel om tilpassede undtagelser i Java.

Brugerdefinerede undtagelser i Java

Brugerdefinerede undtagelser kan oprettes som følger,



[Java]
// klasse, der repræsenterer brugerdefineret undtagelse
klasse InvalidAgeException udvider undtagelse {
InvalidAgeException (String s) {
super (r)
}
}
[/ java]

// klasse, der bruger InvalidAgeException klasse Test {statisk ugyldig validering (int alder) kaster InvalidAgeException {if (alder<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') } } 

Produktion:

Undtagelse: InvalidAgeException: Invalid



Afslut

Fortsætter med denne artikel om brugerdefinerede undtagelser i Java.

Behov for brugerdefinerede undtagelser

Ofte finder programmøren behovet for at specificere sin egen undtagelse.

Årsagerne til at indføre disse undtagelser kan være som følger:

hvordan man bruger goto i c ++
  • Der er visse undtagelser, der kun er defineret for forretningslogik og arbejdsgang. Dette gør det muligt for brugerne at bestemme kilden til problemet.
  • At fange og håndtere de eksisterende eller de tidligere definerede java-undtagelser.

Java giver brugeren to undtagelser:

  • Brugerdefineret kontrolleret undtagelse
  • Brugerdefineret ikke-markeret undtagelse

Fortsætter med denne artikel om brugerdefinerede undtagelser i Java.

php slå streng til array

Brugerdefinerede kontrollerede undtagelser

De brugerdefinerede kontrollerede undtagelser er undtagelser, der udvider java.lang.Exception. De kan genvindes i naturen og håndteres eksplicit. I det følgende eksempel skrives en kode for at returnere den første linje i filen som output:

prøv (Scannerfil = ny Scanner (ny fil (filnavn))) {hvis (file.hasNextLine ()) returnerer file.nextLine ()} fangst (FileNotFoundException e) {}

Koden kaster undtagelsen FileNotFound. Årsagen til denne undtagelse er ukendt for brugeren. Vi er uvidende om kilden til undtagelsen, uanset om den er forårsaget på grund af manglende eksistens af filen eller på grund af et ugyldigt filnavn. Til implementering af brugerdefineret undtagelse udvides klassen java.lang.Exception.

offentlig klasse InvalidFileNameException udvider Undtagelse {public InvalidFileNameException (String errorMessage) {super (errorMessage)}}

En brugerdefineret kontrolleret undtagelse kaldet InvalidFileNameException oprettes.

En konstruktør skal leveres, mens undtagelsen oprettes. I vores tilfælde tager konstruktøren String som fejlmeddelelsen og kalder den overordnede klassekonstruktør.

prøv (Scannerfil = ny Scanner (ny fil (filnavn))) {hvis (fil.hasNextLine ()) returnerer fil.nextLine ()} fangst (FileNotFoundException e) {hvis (! isCorrectFileName (filnavn)) {kast ny InvalidFileNameException ( 'Ugyldigt filnavn:' + filnavn)}}

Selvom brugeren nu er opmærksom på den nøjagtige undtagelse, har vi mistet grundårsagen til undtagelsen. Dette kan løses ved at tilføje java.lang.Trowable til konstruktøren. InvalidFileNameException kan nu bruges med grundårsagen til undtagelsen:

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

Fortsætter med denne artikel om brugerdefinerede undtagelser i Java

Brugerdefinerede ikke-markerede undtagelser

De brugerdefinerede kontrollerede undtagelser udvider java.lang.RuntimeException. De er uoprettelige i naturen.

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

Denne undtagelse bruges som følger:

prøv (Scannerfil = ny Scanner (ny fil (filnavn))) {hvis (file.hasNextLine ()) {return file.nextLine ()} ellers {kast ny IllegalArgumentException ('Filen kan ikke læses.')}} fangst ( FileNotFoundException err) {if (! IsCorrectFileName (fileName)) {throw new InvalidFileNameException ('Ugyldigt filnavn:' + filnavn, err)}} fangst (IllegalArgumentException err) {if (! ContainExtension (fileName)) {throw new InvalidFileExtensionExcame har ikke nogen udvidelse: '+ filnavn, err)}}

Brugerdefinerede undtagelser er vigtige, da de gør det muligt for os at definere undtagelser, der er vores egne.

Således er vi nået til slutningen af ​​denne artikel. Hvis du ønsker at lære mere, skal du tjekke Java Training af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.