In Java kunnen we onze eigen uitzonderingen maken die afgeleide klassen zijn van de klasse Exception. Het maken van onze eigen uitzondering staat bekend als aangepaste uitzondering of door de gebruiker gedefinieerde uitzondering. In principe worden aangepaste Java-uitzonderingen gebruikt om de uitzondering aan te passen aan de behoeften van de gebruiker.
Beschouw voorbeeld 1 waarin de klasse InvalidAgeException de klasse Exception uitbreidt.
string naar geheel getal in Java
Met behulp van de aangepaste uitzondering kunnen we uw eigen uitzondering en bericht maken. Hier hebben we een string doorgegeven aan de constructor van de superklasse, d.w.z. de Exception-klasse die kan worden verkregen met behulp van de getMessage()-methode voor het object dat we hebben gemaakt.
In deze sectie leren we hoe aangepaste uitzonderingen worden geïmplementeerd en gebruikt in Java-programma's.
Waarom aangepaste uitzonderingen gebruiken?
Java-uitzonderingen omvatten bijna alle algemene soorten uitzonderingen die bij het programmeren kunnen voorkomen. Soms moeten we echter aangepaste uitzonderingen maken.
Hieronder volgen enkele redenen om aangepaste uitzonderingen te gebruiken:
Excel verwijder het eerste teken
- Om een subset van bestaande Java-uitzonderingen op te vangen en specifiek te behandelen.
- Uitzonderingen op bedrijfslogica: dit zijn de uitzonderingen die verband houden met bedrijfslogica en workflow. Het is nuttig voor de applicatiegebruikers of de ontwikkelaars om het exacte probleem te begrijpen.
Om aangepaste uitzonderingen te maken, moeten we de Exception-klasse uitbreiden die bij het java.lang-pakket hoort.
Bekijk het volgende voorbeeld, waarbij we een aangepaste uitzondering maken met de naam WrongFileNameException:
public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } }
Opmerking: we moeten de constructor schrijven die de String als foutmelding gebruikt en deze wordt de parent-klasseconstructor genoemd.
Voorbeeld 1:
Laten we een eenvoudig voorbeeld bekijken van een aangepaste Java-uitzondering. In de volgende code neemt de constructor van InvalidAgeException een string als argument. Deze tekenreeks wordt doorgegeven aan de constructor van de bovenliggende klasse Exception met behulp van de super() -methode. Ook kan de constructor van de klasse Exception worden aangeroepen zonder een parameter te gebruiken, en het aanroepen van de methode super() is niet verplicht.
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){>
Uitgang:
18){>