logo

Excepție personalizată Java

În Java, ne putem crea propriile excepții care sunt clase derivate ale clasei Exception. Crearea propriei excepții este cunoscută ca excepție personalizată sau excepție definită de utilizator. Practic, excepțiile personalizate Java sunt folosite pentru a personaliza excepția în funcție de nevoile utilizatorului.

Luați în considerare exemplul 1 în care clasa InvalidAgeException extinde clasa Exception.

dezactivați modul dezvoltator

Folosind excepția personalizată, putem avea propria excepție și mesaj. Aici, am transmis un șir constructorului superclasei, adică clasa de excepție care poate fi obținută folosind metoda getMessage() pe obiectul pe care l-am creat.

În această secțiune, vom afla cum sunt implementate și utilizate excepțiile personalizate în programele Java.

De ce să folosiți excepții personalizate?

Excepțiile Java acoperă aproape toate tipurile generale de excepții care pot apărea în programare. Cu toate acestea, uneori trebuie să creăm excepții personalizate.

Iată câteva dintre motivele pentru a utiliza excepții personalizate:

carcasa comutatorului java
  • Pentru a captura și a oferi un tratament specific unui subset de excepții Java existente.
  • Excepții de logica de afaceri: acestea sunt excepțiile legate de logica de afaceri și fluxul de lucru. Este util pentru utilizatorii aplicației sau dezvoltatorii să înțeleagă problema exactă.

Pentru a crea o excepție personalizată, trebuie să extindem clasa Exception care aparține pachetului java.lang.

inițializator de dicționar c#

Luați în considerare următorul exemplu, în care creăm o excepție personalizată numită WrongFileNameException:

 public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } } 

Notă: Trebuie să scriem constructorul care ia String ca mesaj de eroare și se numește constructor de clasă părinte.

Exemplul 1:

Să vedem un exemplu simplu de excepție personalizată Java. În următorul cod, constructorul InvalidAgeException ia un șir ca argument. Acest șir este transmis constructorului clasei părinte Exception folosind metoda super(). De asemenea, constructorul clasei Exception poate fi apelat fără a utiliza un parametru și apelarea metodei super() nu este obligatorie.

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(&apos;Caught the exception&apos;); System.out.println(ex.getMessage()); } System.out.println(&apos;rest of the code...&apos;); } } </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){>

Ieșire:

Excepție personalizată Java