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