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