异常处理
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
//异常处理会让代码更健壮
/**两种异常处理
* 1)在发生位置直接处理
* 2)将异常抛出,让调用者处理
*/
/**异常分类(异常父类:java.lang.Throwable)
* 1)检查性异常:java.lang.Exception
* 2)运行期异常:java.lang.RuntimeException
* 3)错误:java.lang.Error
*/
/**finally不会执行情况
* 1)finally块中发生了异常
* 2)程序所在线程死亡
* 3)在前面代码中用了System.exit()
* 4)关闭CPU
*/
/**throws
* 把异常抛给调用者处理,调用者可以继续抛出给调用者
* 也可以在调用者中处理异常
* 一直抛出最终会交给JVM虚拟机处理
*/
public class 异常处理 {
public static void main(String[] args) {
//打开不存在的文件
//如果有多个catch,当捕获第一个异常时,程序结束,不会捕获下一个异常
FileReader fr=null;
try {
//放会出现异常的代码
fr=new FileReader("d:/a.txt");
System.out.println("会不会跳过");
} catch (FileNotFoundException e) {
//捕获异常
// 输出异常信息
//System.out.println(e.getMessage());
e.printStackTrace();
//非正常退出(值为-1),finally不执行
//System.exit(-1);
}finally{
//一般放要关闭的资源
if(fr!=null){
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("会执行吗");
}
}