I Java kan vi oprette vores egne undtagelser, der er afledte klasser af undtagelsesklassen. Oprettelse af vores egen undtagelse er kendt som brugerdefineret undtagelse eller brugerdefineret undtagelse. Grundlæggende bruges tilpassede Java-undtagelser til at tilpasse undtagelsen efter brugerbehov.
Overvej eksempel 1, hvor InvalidAgeException-klassen udvider Exception-klassen.
Ved at bruge den tilpassede undtagelse kan vi have din egen undtagelse og besked. Her har vi sendt en streng til konstruktøren af superklassen, dvs. undtagelsesklassen, der kan opnås ved hjælp af getMessage() metoden på det objekt, vi har oprettet.
I dette afsnit lærer vi, hvordan tilpassede undtagelser implementeres og bruges i Java-programmer.
Hvorfor bruge tilpassede undtagelser?
Java-undtagelser dækker næsten alle de generelle typer undtagelser, der kan forekomme i programmeringen. Men nogle gange er vi nødt til at oprette tilpassede undtagelser.
Følgende er nogle af grundene til at bruge tilpassede undtagelser:
- At fange og give specifik behandling til en undergruppe af eksisterende Java-undtagelser.
- Forretningslogikundtagelser: Disse er undtagelserne relateret til forretningslogik og arbejdsgang. Det er nyttigt for applikationsbrugere eller udviklere at forstå det nøjagtige problem.
For at oprette en tilpasset undtagelse skal vi udvide Exception-klassen, der hører til java.lang-pakken.
Overvej følgende eksempel, hvor vi opretter en tilpasset undtagelse ved navn WrongFileNameException:
public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } }
Bemærk: Vi skal skrive konstruktøren, der tager strengen som fejlmeddelelse, og den kaldes overordnet klassekonstruktør.
Eksempel 1:
Lad os se et simpelt eksempel på tilpasset Java-undtagelse. I den følgende kode tager konstruktøren af InvalidAgeException en streng som et argument. Denne streng sendes til konstruktøren af den overordnede klasse Undtagelse ved hjælp af super() metoden. Også konstruktøren af Exception-klassen kan kaldes uden at bruge en parameter, og det er ikke obligatorisk at kalde super()-metoden.
TestCustomException1.java
// class representing custom exception class InvalidAgeException extends Exception { public InvalidAgeException (String str) { // calling the constructor of parent Exception super(str); } } // class that uses custom exception InvalidAgeException public class TestCustomException1 { // method to check the age static void validate (int age) throws InvalidAgeException{ if(age <18){ throw an object of user defined exception new invalidageexception('age is not valid to vote'); } else { system.out.println('welcome main method public static void main(string args[]) try calling the validate(13); catch (invalidageexception ex) system.out.println('caught exception'); printing message from invalidageexception system.out.println('exception occured: ' + ex); system.out.println('rest code...'); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/13/java-custom-exception.webp" alt="Java Custom Exception"> <h3>Example 2:</h3> <p> <strong>TestCustomException2.java</strong> </p> <pre> // class representing custom exception class MyCustomException extends Exception { } // class that uses custom exception MyCustomException public class TestCustomException2 { // main method public static void main(String args[]) { try { // throw an object of user defined exception throw new MyCustomException(); } catch (MyCustomException ex) { System.out.println('Caught the exception'); System.out.println(ex.getMessage()); } System.out.println('rest of the code...'); } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/13/java-custom-exception-2.webp" alt="Java Custom Exception"> <hr></18){>
Produktion:
ubuntu hvilken kommando
18){>