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

Wie kann man Bedingungen in einer benutzerdefinierten Ausnahme in Java hinzufügen?

Bei der Eingabe von Werten durch den Benutzer in einem Konstruktor oder jeder Methode kann mit der if-Bedingung diese Werte überprüft werden.

Beispiel

In diesem Java-Beispiel definieren wir zwei benutzerdefinierte Ausnahmen, um Namen und Alter zu überprüfen.

import java.util.Scanner;
class NotProperAgeException extends Throwable{
   NotProperAgeException(String msg){
      super(msg);
   }
}
class NotProperNameException extends Throwable{
   NotProperNameException(String msg){
      super(msg);
   }
}
public class CustomException{
   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 CustomException(String name, int age) {
      try {
         if (age < 0 || age >125) {
            String msg = "Ungeeigneter Alter (nicht zwischen 0 und 125)";
            NotProperAgeException exAge = new NotProperAgeException(msg);
            throw exAge;
         }
            String msg = "Ungeeigneter Name ( sollte nur Buchstaben zwischen a bis z (alle Kleinbuchstaben) enthalten)";
            NotProperNameException exName = new NotProperNameException(msg);
            throw exName;
         }
      }
         e.printStackTrace();
      }
         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 der Person ein: ");
      String name = sc.next();
      System.out.println("Geben Sie das Alter der Person ein: ");
      int age = sc.nextInt();
      CustomException obj = new CustomException(name, age);
      obj.display();
   }
}

Ausgaberesultat

Geben Sie den Namen der Person ein:
Krishna
Geben Sie das Alter der Person ein:
136
Name des Schülers: Krishna
Alter der Schüler: 136
july_set3.NotProperAgeException: Ungültiges Alter (nicht zwischen 0 und 125)
at july_set3.CustomException.<init>(CustomException.java:31)
at july_set3.CustomException.main(CustomException.java:56)
Ausgabe2:
Geben Sie den Namen der Person ein:
!23Krishna
Geben Sie das Alter der Person ein:
24
Name des Schülers: !23Krishna
july_set3.NotProperNameException: Ungültiger Name (sollte nur Buchstaben zwischen a und z enthalten (alle Kleinbuchstaben))
Alter der Schüler: 24
at july_set3.CustomException<init>(CustomException.java:35)
at july_set3.CustomException.main(CustomException.java:56)