throws关键字:异常处理的第一种方式---交给别人
一、作用:
当方法内部抛出异常对象的时,那么我们就必须处理这个异常,可以使用throws关键字处理异常对象,它会把异常对象声明抛给方法的调用者处理,如果方法调用者继续抛出,则最终交给JVM处理,JVM处理办法是中断程序运行
二、使用格斯:
修饰符 返回值类型 方法名(参数列表) throws AAAException,BBBException...{
throw new AAAException("输出产生原因");
throw new BBBException("输出产生原因");
...
}
三、注意:
1、throws关键字必须写在方法声明出。
2、throws关键字后边声明的异常必须是Exception或者是其子类。
3、方法内部如果抛出多个异常对象,那么throws后面必须声明多个异常,如果多个异常有父子类贵溪,可以直接声明他们的父类即可。
4、调用一个声明抛出异常的方法,我们必须处理异常:
* 要么继续使用throws声明抛出,交给方法的调用者处理,最终可能交割JVM。
* 要么try...catch自己处理异常。
import java.io.FileNotFoundException;
import java.io.IOException;
public class Demo03Throw {
public static void main(String[] args) throws IOException {
//readFile("c:\\a.txt");
//readFile("c:\\b.txt");
readFile("c:\\a.mov");
}
/*
FileNotFoundException是编译异常,抛出的异常就必须处理,可以使用throws继续声明抛出让调用处理
抛出多个异常时,由于有IOException异常,而FileNotFoundException是IOException的子类,因此
可以只写IOException
*/
private static void readFile(String fileName) throws IOException {
if (!fileName.equals("c:\\a.txt")){
throw new FileNotFoundException("传递的文件路径不是c:\\a.txt");
}
System.out.println("路径没有问题,继续!");
if (!fileName.endsWith(".txt")){
throw new IOException("文件格式不对");
}
}
}
输出结果:
Exception in thread "main" java.io.FileNotFoundException: 传递的文件路径不是c:\a.txt