Heim >Java >javaLernprogramm >Benutzerdefinierte Ausnahmen in Java
Sie können in Java Ihre eigenen Ausnahmen erstellen. Sie werden als benutzerdefinierte Ausnahmen oder benutzerdefinierte Ausnahmen bezeichnet.
Um benutzerdefinierte Ausnahmen zu erstellen, erweitern Sie eine der oben genannten Klassen. Um eine Nachricht anzuzeigen, überschreiben Sie die Methode toString() oder rufen Sie den parametrisierten Konstruktor der Oberklasse auf, indem Sie die Nachricht im String-Format umgehen.
MyException(String msg){ super(msg); } Or, public String toString(){ return " MyException [Message of your exception]"; }
Erstellen Sie dann in der anderen Klasse, die diese Ausnahme auslösen muss, ein Objekt der von Ihnen erstellten benutzerdefinierten Ausnahmeklasse und lösen Sie die Ausnahme mit dem Schlüsselwort throw aus.
MyException ex = new MyException (); If(condition……….){ throw ex; }
Alle Ausnahmen müssen Unterklassen von Throwable sein.
Wenn Sie eine geprüfte Ausnahme schreiben möchten, die automatisch durch eine Handle- oder Declare-Regel erzwungen wird, müssen Sie die Exception-Klasse erweitern.
Wenn Sie eine Laufzeitausnahme schreiben möchten, müssen Sie die RuntimeException-Klasse erweitern.
Das folgende Java-Programm zeigt, wie eine benutzerdefinierte geprüfte Ausnahme erstellt wird.
Online-Demonstration
import java.util.Scanner; class NotProperNameException extends Exception { NotProperNameException(String msg){ super(msg); } } public class CustomCheckedException { private String name; private int age; public static boolean containsAlphabet(String name) { for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); if (!(ch >= 'a' && ch <= 'z')) { return false; } } return true; } public CustomCheckedException(String name, int age){ if(!containsAlphabet(name)&&name!=null) { String msg = "Improper name (Should contain only characters between a to z (all small))"; NotProperNameException exName = new NotProperNameException(msg); throw exName; } 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 person: "); String name = sc.next(); System.out.println("Enter the age of the person: "); int age = sc.nextInt(); CustomCheckedException obj = new CustomCheckedException(name, age); obj.display(); } }
Beim Kompilieren generiert das obige Programm die folgende Ausnahme.
CustomCheckedException.java:24: error: unreported exception NotProperNameException; must be caught or declared to be thrown throw exName; ^ 1 error
Wenn Sie einfach die Klasse, von der Ihre benutzerdefinierte Ausnahme erbt, in RuntimeException ändern, wird sie zur Laufzeit ausgelöst
class NotProperNameException extends RuntimeException { NotProperNameException(String msg){ super(msg); } }
Wenn Sie Führen Sie das obige Programm aus, ersetzen Sie die NotProperNameException-Klasse durch den obigen Code und führen Sie ihn aus. Die folgende Laufzeitausnahme wird generiert.
Enter the name of the person: Krishna1234 Enter the age of the person: 20 Exception in thread "main" july_set3.NotProperNameException: Improper name (Should contain only characters between a to z (all small)) at july_set3.CustomCheckedException.<init>(CustomCheckedException.java:25) at july_set3.CustomCheckedException.main(CustomCheckedException.java:41)
Das obige ist der detaillierte Inhalt vonBenutzerdefinierte Ausnahmen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!