logo

Niestandardowy wyjątek Java

W Javie możemy tworzyć własne wyjątki będące klasami pochodnymi klasy Wyjątek. Tworzenie własnego wyjątku jest znane jako wyjątek niestandardowy lub wyjątek zdefiniowany przez użytkownika. Zasadniczo niestandardowe wyjątki Java służą do dostosowywania wyjątku do potrzeb użytkownika.

Rozważmy przykład 1, w którym klasa InvalidAgeException rozszerza klasę wyjątku.

system.out.println

Korzystając z niestandardowego wyjątku, możemy mieć własny wyjątek i wiadomość. Tutaj przekazaliśmy ciąg znaków do konstruktora nadklasy, czyli klasy wyjątku, którą można uzyskać za pomocą metody getMessage() na stworzonym przez nas obiekcie.

W tej sekcji dowiemy się, jak niestandardowe wyjątki są implementowane i wykorzystywane w programach Java.

Po co używać niestandardowych wyjątków?

Wyjątki Java obejmują prawie wszystkie ogólne typy wyjątków, które mogą wystąpić w programowaniu. Czasami jednak musimy utworzyć niestandardowe wyjątki.

Oto kilka powodów, dla których warto używać niestandardowych wyjątków:

rozmiar tekstu, lateks
  • Aby wychwycić i zapewnić specyficzne traktowanie podzbioru istniejących wyjątków Java.
  • Wyjątki logiki biznesowej: są to wyjątki związane z logiką biznesową i przepływem pracy. Zrozumienie dokładnego problemu jest przydatne dla użytkowników aplikacji lub programistów.

Aby utworzyć niestandardowy wyjątek, musimy rozszerzyć klasę Wyjątek należącą do pakietu java.lang.

nieuporządkowana_mapa c++

Rozważmy następujący przykład, w którym tworzymy niestandardowy wyjątek o nazwie WrongFileNameException:

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

Uwaga: Musimy napisać konstruktor, który przyjmie String jako komunikat o błędzie i nazywa się to konstruktorem klasy nadrzędnej.

Przykład 1:

Zobaczmy prosty przykład niestandardowego wyjątku Java. W poniższym kodzie konstruktor InvalidAgeException przyjmuje ciąg znaków jako argument. Ten ciąg znaków jest przekazywany do konstruktora klasy nadrzędnej Wyjątek za pomocą metody super(). Również konstruktor klasy wyjątku można wywołać bez użycia parametru, a wywołanie metody super() nie jest obowiązkowe.

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

Wyjście:

Niestandardowy wyjątek Java