Cum să gestionați excepțiile personalizate în Java?



Acest articol vă va ajuta să înțelegeți excepțiile personalizate în Java și va sprijini explicația cu o demonstrație practică a conceptului.

oferă utilizatorului opțiunea de a-și crea propriile excepții. Astfel de excepții sunt cunoscute sub numele de excepții personalizate sau excepții definite de utilizator. În acest articol vom explora excepțiile personalizate în Java.

Următoarele indicații vor fi tratate în acest articol,





Noțiuni introductive acest articol despre excepțiile personalizate în Java.

diferența dintre finalul final și finalizarea în java

Excepții personalizate în Java

Excepțiile personalizate pot fi create după cum urmează,



[Java]
// clasă care reprezintă excepția definită de utilizator
clasa InvalidAgeException extinde Excepția {
InvalidAgeException (șiruri) {
super (e)
}
}
[/ java]

// clasă care folosește clasa InvalidAgeException Test {static void validate (int age) aruncă 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') } } 

Ieșire:

Excepție: InvalidAgeException: Invalid



Ieșire

Continuăm cu acest articol despre excepțiile personalizate în Java.

Nevoia de excepții personalizate

De multe ori, programatorul găsește nevoia de a-și specifica propria excepție.

Motivele pentru introducerea acestor excepții ar putea fi următoarele:

  • Există anumite excepții care sunt definite numai pentru logica de afaceri și fluxul de lucru. Aceasta permite utilizatorilor să determine sursa problemei.
  • Pentru a prinde și gestiona excepțiile Java existente sau definite anterior.

Java oferă utilizatorului două excepții:

  • Excepție verificată personalizat
  • Excepție personalizată fără bifare

Continuăm cu acest articol despre excepțiile personalizate în Java.

diferența dintre clasă și interfață

Excepții verificate personalizat

Excepțiile verificate personalizat sunt excepții care extind java.lang.Exception. Sunt de natură recuperabilă și sunt tratate în mod explicit. În exemplul următor, un cod este scris pentru a returna prima linie a fișierului ca ieșire:

try (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) returnează file.nextLine ()} catch (FileNotFoundException e) {}

Codul aruncă excepția FileNotFound. Cauza acestei excepții este necunoscută utilizatorului. Nu suntem conștienți de sursa excepției, indiferent dacă a fost cauzată din cauza inexistenței fișierului sau din cauza unui nume de fișier nevalid. Pentru implementarea excepției personalizate, clasa java.lang.Exception este extinsă.

clasa publică InvalidFileNameException extinde Excepția {public InvalidFileNameException (String errorMessage) {super (errorMessage)}}

Este creată o excepție verificată personalizat numită InvalidFileNameException.

Un constructor trebuie furnizat în timp ce creați excepția. În cazul nostru, constructorul ia String ca mesaj de eroare și apelează constructorul clasei părinte.

try (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) returnează file.nextLine ()} catch (FileNotFoundException e) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ( 'Nume fișier nevalid:' + FileName)}}

Deși, utilizatorul este acum conștient de excepția exactă, am pierdut cauza principală a excepției. Acest lucru poate fi remediat prin adăugarea java.lang.Throwable la constructor. InvalidFileNameException poate fi acum utilizat cu cauza principală a excepției:

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

Continuăm cu acest articol despre excepțiile personalizate în Java

Excepții nebifate personalizate

Excepțiile verificate personalizate extind java.lang.RuntimeException. Sunt de natură nerecuperabilă.

public class InvalidFileExtensionException extinde RuntimeException {public InvalidFileExtensionException (String errorMessage, Throwable err) {super (errorMessage, err)}}

Această excepție este utilizată după cum urmează:

try (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) {return file.nextLine ()} else {throw new IllegalArgumentException ('File is not readable.')}} catch ( FileNotFoundException err) {if (! IsCorrectFileName (fileName)) {throw new InvalidFileNameException ('Invalid file name:' + fileName, err)}} catch (IllegalArgumentException error) {if (! ContainsExtension (fileName)) {throw new InvalidFileExtensionException (' nu are nicio extensie: '+ FileName, err)}}

Excepțiile definite de utilizator sunt esențiale, deoarece ne permit să definim excepțiile care ne aparțin.

Astfel am ajuns la sfârșitul acestui articol. Dacă doriți să aflați mai multe, consultați Java Training de la Edureka, o companie de învățare online de încredere. Cursul de formare și certificare Java J2EE și SOA Edureka este conceput pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate Java, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog și vă vom contacta cât mai curând posibil.

cum se execută eclipsa pe Windows