抛出异常给别人处理,是异常处理的第一种方式
throws 是声明抛出的关键字
1.throws 语法
修饰符 返回值类型 方法名(参数列表) throws AAAException,BBBException...{
throw new AAAException("抛出原因");
method(); // 抛出BBBException
...
}
注意事项
- throws 必须写在方法声明处
- throws 抛出的必须是 Exception 或其子类
- 如果声明抛出的多个 Exception 有父子关系,只需要声明父Exception
- 子类方法覆盖无法声明抛出父类方法不存在的异常
- throws 声明抛出的异常,都是编译期异常,方法中的异常有 2 中来源
- 一种是 throw 抛出的编译期异常
- 另一种是处理是调用其他方法抛出的编译期异常,继续抛出
2.例子
check 方法抛出了 FileNotFoundException 和 IOException,只需要声明后者
main 方法调用了 check,需要处理 check 方法抛出的异常,选择继续抛出
public static void main(String[] args) throws IOException {
check("c:\\a.txt");
}
public static void check(String fileName) throws IOException {
if(fileName.equals("d:\\a.txt")) {
throw new FileNotFoundException();
}
File f = new File(fileName);
f.createNewFile(); //throw IOException
}