Heim  >  Artikel  >  Java  >  Benutzerdefinierte Ausnahmen in Java

Benutzerdefinierte Ausnahmen in Java

王林
王林nach vorne
2023-08-24 11:41:082049Durchsuche

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;
}

Benutzerdefinierte geprüfte Ausnahmen und benutzerdefinierte ungeprüfte Ausnahmen

  • 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.

Beispiel: Benutzerdefinierte geprüfte Ausnahme

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 >= &#39;a&#39; && ch <= &#39;z&#39;)) {
            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();
   }
}

Ausnahme zur Kompilierungszeit

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

Beispiel: Benutzerdefinierte ungeprüfte Ausnahme

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.

Laufzeitausnahme

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen