English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Можно ли создать пользовательскую исключительную ситуацию в Java без расширения класса Exception?

Исключения - это проблемы, которые возникают в процессе выполнения программы (время выполнения ошибки). При возникновении исключения программа внезапно прекращает работу, и код, расположенный после строки, генерирующей исключение, никогда не будет выполнен.

Пользовательские исключения

Вы можете использовать Java для создания своих исключений, которые называются пользовательскими исключениями или пользовательскими исключениями.

  • Все исключения должны быть подклассами Throwable.

  • Чтобы написать проверяемые исключения, которые автоматически выполняются с помощью Handle или Delare Rule, необходимо расширитьExceptionКласс.

  • Если вы хотите написать исключительную ситуацию времени выполнения, вам нужно расширитьRuntimeExceptionКласс.

Должен ли расширяться класс Exception?

Нет, расширение класса Exception для создания пользовательских исключительных ситуаций не обязательно. Вы можете создать их, расширив класс Throwable (суперкласс всех исключительных ситуаций).

Пример

Ниже приведен пример Java, который создает пользовательскую исключительную ситуацию под названием AgeDoesnotMatchException, которая ограничивает возраст пользователя между 17 и 24 годами. Здесь мы создаем его, не расширяя класс Exception.

import java.util.Scanner;
class AgeDoesnotMatchException extends Throwable {
   AgeDoesnotMatchException(String msg) {
      super(msg);
   }
}
public class CustomException {
   private String name;
   private int age;
   public CustomException(String name, int age) {
      try {
         if (age < 17 || age > 24) {
            String msg = "Age is not between 17 and 24";
            AgeDoesnotMatchException ex = new AgeDoesnotMatchException(msg);
            throw ex;
         }
      }
         e.printStackTrace();
      }
      this.name = name;
      this.age = age;
   }
   public void display() {
      System.out.println("Name of the Student: " + this.name);
      System.out.println("Age of the Student: " + this.age);
   }
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter the name of the Student:");
      String name = sc.next();
      System.out.println("Введите возраст студента, должен быть между 17 и 24 (включая 17 и 24): ");
      int age = sc.nextInt();
      CustomException obj = new CustomException(name, age);
      obj.display();
   }
}

Результат вывода

Введите имя студента:
Krishna
Введите возраст студента, должен быть между 17 и 24 (включая 17 и 24):
30
july_set3.AgeDoesnotMatchException: Возраст не介于 17 и 24
Имя студента: Krishna
Возраст студента: 30
at july_set3.CustomException.<init>(CustomException.java:17)
at july_set3.CustomException.main(CustomException.java:36)
Основной учебник
Вам может понравиться