logo

Vlastná výnimka Java

V Jave môžeme vytvárať vlastné výnimky, ktoré sú odvodenými triedami triedy Exception. Vytvorenie našej vlastnej výnimky je známe ako vlastná výnimka alebo používateľom definovaná výnimka. Vlastné výnimky Java sa v podstate používajú na prispôsobenie výnimky podľa potrieb používateľa.

Uvažujme o príklade 1, v ktorom trieda InvalidAgeException rozširuje triedu Exception.

skontrolujte verziu java na linuxe

Pomocou vlastnej výnimky môžeme mať vašu vlastnú výnimku a správu. Tu sme odovzdali reťazec konštruktoru nadtriedy, t.j. triedy Exception, ktorú možno získať pomocou metódy getMessage() na objekte, ktorý sme vytvorili.

V tejto časti sa dozvieme, ako sa vlastné výnimky implementujú a používajú v programoch Java.

Prečo používať vlastné výnimky?

Výnimky Java pokrývajú takmer všetky všeobecné typy výnimiek, ktoré sa môžu vyskytnúť pri programovaní. Niekedy však potrebujeme vytvoriť vlastné výnimky.

Nasleduje niekoľko dôvodov, prečo používať vlastné výnimky:

premenovať priečinok linux
  • Zachytenie a poskytnutie špecifického zaobchádzania s podmnožinou existujúcich výnimiek Java.
  • Výnimky obchodnej logiky: Ide o výnimky súvisiace s obchodnou logikou a pracovným tokom. Pre používateľov aplikácie alebo vývojárov je užitočné pochopiť presný problém.

Aby sme mohli vytvoriť vlastnú výnimku, musíme rozšíriť triedu Exception, ktorá patrí do balíka java.lang.

javascript trim podreťazec

Uvažujme o nasledujúcom príklade, v ktorom vytvoríme vlastnú výnimku s názvom WrongFileNameException:

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

Poznámka: Musíme napísať konštruktor, ktorý berie reťazec ako chybové hlásenie a nazýva sa konštruktor rodičovskej triedy.

Príklad 1:

Pozrime sa na jednoduchý príklad vlastnej výnimky Java. V nasledujúcom kóde berie konštruktor InvalidAgeException reťazec ako argument. Tento reťazec je odovzdaný konštruktorovi nadradenej triedy Exception pomocou metódy super(). Konštruktor triedy Exception možno volať aj bez použitia parametra a volanie metódy super() nie je 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ýkon:

Vlastná výnimka Java