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

如何在Java中的自定义异常中添加条件?

在构造函数或任何方法中从用户读取值时,可以使用if条件验证这些值。

示例

在下面的Java示例中,我们定义了两个自定义异常类,用于验证名称和年龄。

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 = "Improper age (not between 0 to 125)";
            NotProperAgeException exAge = new NotProperAgeException(msg);
            throw exAge;
         }else 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;
         }
      }catch(NotProperAgeException e) {
         e.printStackTrace();
      }catch(NotProperNameException e) {
         e.printStackTrace();
      }
      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();
      CustomException obj = new CustomException(name, age);
      obj.display();
   }
}

输出结果

Enter the name of the person:
Krishna
Enter the age of the person:
136
Name of the Student: Krishna
Age of the Student: 136
july_set3.NotProperAgeException: Improper age (not between 0 to 125)
at july_set3.CustomException.<init>(CustomException.java:31)
at july_set3.CustomException.main(CustomException.java:56)
Output2:
Enter the name of the person:
!23Krishna
Enter the age of the person:
24
Name of the Student: !23Krishna
july_set3.NotProperNameException: Improper name (Should contain only characters between a to z (all small))
Age of the Student: 24
at july_set3.CustomException<init>(CustomException.java:35)
at july_set3.CustomException.main(CustomException.java:56)