logo

Java egyéni kivétel

Java-ban létrehozhatunk saját kivételeket, amelyek az Exception osztály származtatott osztályai. Saját kivételünk létrehozását egyéni kivételnek vagy felhasználó által meghatározott kivételnek nevezzük. Alapvetően a Java egyéni kivételek a kivételek testreszabására szolgálnak a felhasználói igények szerint.

Tekintsük az 1. példát, amelyben az InvalidAgeException osztály kiterjeszti az Exception osztályt.

Az egyéni kivétel használatával saját kivételt és üzenetet kaphatunk. Itt egy karakterláncot adtunk át a szuperosztály, azaz a kivétel osztály konstruktorának, amelyet a getMessage() metódussal kaphatunk meg az általunk létrehozott objektumon.

Ebben a részben megtudjuk, hogyan valósítják meg és használják az egyéni kivételeket a Java programokban.

Miért érdemes egyéni kivételeket használni?

A Java kivételek szinte az összes általános kivételt lefedik, amelyek a programozás során előfordulhatnak. Néha azonban egyedi kivételeket kell létrehoznunk.

Az alábbiakban felsorolunk néhány okot az egyéni kivételek használatára:

  • A meglévő Java-kivételek egy részhalmazának felfogása és speciális kezelése.
  • Üzleti logikai kivételek: Ezek az üzleti logikához és munkafolyamatokhoz kapcsolódó kivételek. Az alkalmazás felhasználóinak vagy fejlesztőinek hasznos megérteni a pontos problémát.

Egyéni kivétel létrehozásához ki kell terjesztenünk a java.lang csomaghoz tartozó Exception osztályt.

Tekintsük a következő példát, ahol létrehozunk egy WrongFileNameException nevű egyéni kivételt:

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

Megjegyzés: Meg kell írnunk azt a konstruktort, amely a String-et veszi hibaüzenetként, és ezt szülőosztály-konstruktornak nevezzük.

1. példa:

Lássunk egy egyszerű példát a Java egyéni kivételre. A következő kódban az InvalidAgeException konstruktora egy karakterláncot vesz fel argumentumként. Ezt a karakterláncot a szuper() metódussal továbbítják az Exception szülőosztály konstruktorának. Az Exception osztály konstruktora is meghívható paraméter használata nélkül, és a super() metódus hívása nem kötelező.

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){>

Kimenet:

Java egyéni kivétel