logo

Vlastní výjimka Java

V Javě můžeme vytvářet vlastní výjimky, které jsou odvozenými třídami třídy Exception. Vytvoření naší vlastní výjimky je známé jako vlastní výjimka nebo uživatelsky definovaná výjimka. V zásadě se vlastní výjimky Java používají k přizpůsobení výjimky podle potřeb uživatele.

Zvažte příklad 1, ve kterém třída InvalidAgeException rozšiřuje třídu Exception.

java a swing

Pomocí vlastní výjimky můžeme mít vaši vlastní výjimku a zprávu. Zde jsme předali řetězec konstruktoru nadtřídy, tj. třídy Exception, kterou lze získat pomocí metody getMessage() na objektu, který jsme vytvořili.

V této části se naučíme, jak jsou vlastní výjimky implementovány a používány v programech Java.

Proč používat vlastní výjimky?

Výjimky Java pokrývají téměř všechny obecné typy výjimek, které se mohou při programování vyskytnout. Někdy však potřebujeme vytvořit vlastní výjimky.

Níže je uvedeno několik důvodů, proč používat vlastní výjimky:

char na celé číslo java
  • K zachycení a poskytnutí specifického zacházení s podmnožinou existujících výjimek Java.
  • Výjimky obchodní logiky: Toto jsou výjimky související s obchodní logikou a pracovním postupem. Pro uživatele aplikace nebo vývojáře je užitečné pochopit přesný problém.

Abychom mohli vytvořit vlastní výjimku, musíme rozšířit třídu Exception, která patří do balíčku java.lang.

Zvažte následující příklad, kde vytvoříme vlastní výjimku s názvem WrongFileNameException:

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

Poznámka: Musíme napsat konstruktor, který vezme řetězec jako chybovou zprávu a nazývá se konstruktor rodičovské třídy.

Příklad 1:

Podívejme se na jednoduchý příklad vlastní výjimky Java. V následujícím kódu konstruktor InvalidAgeException bere jako argument řetězec. Tento řetězec je předán konstruktoru nadřazené třídy Exception pomocí metody super(). Také konstruktor třídy Exception lze volat bez použití parametru a volání metody super() není povinné.

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

Výstup:

Vlastní výjimka Java