如何在 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)

更新于:06-Aug-2019

638 查看

开启您的 职业生涯

完成课程后获得认证

开始
广告