初次尝试Java自定义异常的定义、拋出和捕获试验
问题描述:
(1)自定义两个异常类非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。
(2)定义Student类包含Name和Address属性,和setName、setAddress方法,当姓名长度小于1或者
大于5抛出IllegaNameExceptio,当地址中不含有”省”或者“市”关键字抛出IllegalAddressException。
(3)在main方法中进行捕获试验。
代码展示:
class IllegalNameException extends Exception{
public IllegalNameException(String s){
super(s);
}
}
class IllegalAddressException extends Exception{
public IllegalAddressException(String s){
super(s);
}
}
class Student {
String Name;
String Address;
public void setName(String name)throws IllegalNameException {
Name = name;
if(Name.length()<1||Name.length()>5)
throw new IllegalNameException("姓名长度小于1或者大于5!");
}
public void setAddress(String address) throws IllegalAddressException{
Address = address;
boolean flag=true;
for(int i=0;i<address.length();i++){
if(address.charAt(i)=='省'||address.charAt(i)=='市'){
flag=false;
}
}
if(flag)
throw new IllegalAddressException("地址中不含有”省”或者“市”关键字");
}
}
public class Test6_3 {
public static void main(String[] args) throws IllegalNameException,IllegalAddressException {
Student student=new Student();
try {
student.setName("孤独的抠脚大汉");
}
catch (IllegalNameException e){
e.printStackTrace();
System.out.println("输入的姓名:“"+student.Name+"”格式存在错误!");
}
try {
student.setAddress("我才不会告诉我住哪");
}
catch (IllegalAddressException e){
e.printStackTrace();
System.out.println("输入地址:“"+student.Address+"”格式存在错误!");
}
}
}
效果上图: