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

Kann man in Java eine benutzerdefinierte Ausnahme ohne das Erweitern der Exception-Klasse erstellen?

Ausnahmen sind Probleme, die während der Ausführung des Programms auftreten (Laufzeitfehler). Wird eine Ausnahme aufgetreten, wird das Programm plötzlich beendet und der Code nach der Zeile, in der die Ausnahme aufgetreten ist, wird niemals ausgeführt.

Benutzerdefinierte Ausnahmen

Sie können Ihre eigenen Ausnahmen in Java erstellen, die als benutzerdefinierte Ausnahmen oder Custom Exceptions bezeichnet werden.

  • Alle Ausnahmen müssen Subklassen von Throwable sein.

  • Wenn Sie überprüfte Ausnahmen schreiben möchten, die automatisch durch Handle oder Delare Rule ausgeführt werden, müssen Sie dieExceptionKlasse.

  • Wenn Sie Runtime-Exceptions schreiben möchten, müssen Sie dieRuntimeExceptionKlasse.

Muss die Exception-Klasse erweitert werden

Es ist nicht obligatorisch, die Exception-Klasse zu erweitern, um benutzerdefinierte Ausnahmen zu erstellen. Sie können sie auch durch Erweiterung der Throwable-Klasse (dem Superklasse aller Ausnahmen) erstellen.

Beispiel

Das folgende Java-Beispiel erstellt eine benutzerdefinierte Ausnahme namens AgeDoesnotMatchException, die das Alter des Benutzers begrenzt auf17bis24Alter zwischen. Hier erstellen wir es ohne die Erweiterung der Exception-Klasse.

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 = "Alter ist nicht zwischen" 17 und 24";
            AgeDoesnotMatchException ex = new AgeDoesnotMatchException(msg);
            throw ex;
         }
      } catch (AgeDoesnotMatchException e) {
         e.printStackTrace();
      }
      this.name = name;
      this.age = age;
   }
   public void display(){
      System.out.println("Name des Schülers: ")+this.name );
      System.out.println("Alter des Schülers: ")+this.age );
   }
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Geben Sie den Namen des Schülers ein: ");
      String name = sc.next();
      System.out.println("Geben Sie das Alter des Schülers ein, sollte sein 17 bis 24 (einschließlich 17 und 24): ");
      int age = sc.nextInt();
      CustomException obj = new CustomException(name, age);
      obj.display();
   }
}

Ausgaberesultat

Geben Sie den Namen des Schülers ein:
Krishna
Geben Sie das Alter des Schülers ein, sollte sein 17 bis 24 (einschließlich 17 und 24):
30
july_set3.AgeDoesnotMatchException: Das Alter ist nicht zwischen 17 und 24
Name des Schülers: Krishna
Alter des Schülers: 30
at july_set3.CustomException.<init>(CustomException.java:)17)
at july_set3.CustomException.main(CustomException.java:)36)
Vielleicht gefällt dir auch