logo

Спеціальний виняток Java

У Java ми можемо створювати власні винятки, які є похідними класами від класу Exception. Створення власного винятку відоме як спеціальний виняток або визначений користувачем виняток. В основному спеціальні винятки Java використовуються для налаштування винятків відповідно до потреб користувача.

Розглянемо приклад 1, у якому клас InvalidAgeException розширює клас Exception.

Використовуючи спеціальний виняток, ми можемо мати ваш власний виняток і повідомлення. Тут ми передали рядок конструктору суперкласу, тобто класу винятків, який можна отримати за допомогою методу getMessage() для об’єкта, який ми створили.

У цьому розділі ми дізнаємося, як спеціальні винятки реалізуються та використовуються в програмах Java.

Навіщо використовувати спеціальні винятки?

Винятки Java охоплюють майже всі загальні типи винятків, які можуть виникати під час програмування. Однак іноді нам потрібно створювати спеціальні винятки.

Нижче наведено кілька причин використання спеціальних винятків.

  • Перехопити та надати спеціальне лікування підмножині існуючих винятків Java.
  • Винятки бізнес-логіки: це винятки, пов’язані з бізнес-логікою та робочим процесом. Користувачам програми або розробникам корисно зрозуміти точну проблему.

Щоб створити спеціальний виняток, нам потрібно розширити клас Exception, який належить пакету java.lang.

Розглянемо наступний приклад, у якому ми створюємо настроюваний виняток під назвою WrongFileNameException:

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

Примітка. Нам потрібно написати конструктор, який приймає рядок як повідомлення про помилку, і він називається конструктором батьківського класу.

приклад 1:

Давайте подивимося на простий приклад спеціального винятку Java. У наведеному нижче коді конструктор InvalidAgeException приймає рядок як аргумент. Цей рядок передається конструктору батьківського класу Exception за допомогою методу super(). Також конструктор класу Exception можна викликати без використання параметра, і виклик методу super() не є обов’язковим.

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

Вихід:

java містить підрядок
Спеціальний виняток Java