异常的捕捉和上报的联合使用
异常:
1.Java中异常以类的形式存在,类会创建对象
2.分为 编译时异常 和 运行时异常
3.相同点:二者都发生在运行阶段 不同点:编译时异常发生概率比较高,需要处理。 运行时异常发声概率比较低
4.异常处理方法:
throw上抛 try.....catch语句进行捕捉
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//处理异常的第一种方式:
//在方法声明的位置上,使用throws关键字抛出,谁调用这个方法,就抛给谁,抛给调用者处理
//处理异常的第二种方式:
//使用try..catch语句对异常进行捕捉
//这个异常不会上报,自己把事情处理了
//异常抛到此处为止,不再上抛
//注意:
//只要异常没有捕捉,采用上报的方式,此方法的后续代码不会执行
//另外注意:try语句中的某一行出现异常,该行后面的代码不会执行
public class Exception02 {
public static void main(String[] args) {
System.out.println("main开始");
try {
m1();
} catch (IOException e) {
//System.out.println("该文件禁止访问");
e.printStackTrace();
}
System.out.println("main结束了");
}
public static void m1() throws IOException {
System.out.println("m1开始");
m2();
System.out.println("m1结束了");
}
public static void m2() throws FileNotFoundException {
System.out.println("m2开始了");
m3();
System.out.println("m2结束了");
}
//编译报错的原因:
//这里调用了构造方法FileInputStream(String name)
//这个构造方法的声明位置上有:throws FileNotFounfException
//从这个类的继承结构上可以看出:FileNotFounfException的父类是IOException,对应父类是Exception,
//可以知道:FileNotFoundException是编译时异常
public static void m3() throws FileNotFoundException {
//我们采用throws方法:在方法声明的位置上使用throws继续上抛
//一个方法体中的代码出现异常后,如果上报的话,此方法结束。
new FileInputStream("E:\\南理\\课程任务\\生物医学工程前沿技术");
}
}