版权声明:转载注明来源。Keep Learning and Coding. https://blog.csdn.net/a771581211/article/details/88647739
首先定义Person类用于测试:
//Person.java
package day08;
/**
* 用来测试throw与throws
*
* @author kaixu
*
*/
public class Person {
private int age;
public int getAge() {
return age;
}
/**
* 当一个方法中使用throw抛出一个异常时
* 就是要在方法上使用throws声明该类异常的抛出以通知调用者解决。
* 只有RuntimeException及其子类异常使用throw抛出时不强制要求
* 必须使用throws声明,其他异常都是强制要求的,否则编译无法通过。
* @param age
* @throws Exception
*/
public void setAge(int age)throws IllegalAgeException {
if(age<0||age>100){
throw new IllegalAgeException("年龄不合法。");
}
this.age = age;
}
}
在此基础上设置ExceptionDemo4类测试异常的抛出过程:
package day08;
/**
* 测试异常的抛出
* @author kaixu
*
*/
public class ExceptionDemo4 {
public static void main(String[] args) {
Person p = new Person();
/*
* 当调用一个含有throws声明异常抛出的方法时,编译器要求必须处理该异常。
* 处理手段有两种:
* 1.使用try-catch捕获并处理。
* 2.在当前方法上继续使用throws声明该异常的抛出。
*/
try {
p.setAge(20);
} catch (IllegalAgeException e) {
e.printStackTrace();
}
System.out.println("年龄为:"+p.getAge());
}
}