package cn.itcast.exception;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Demo3_Exception {
/**
* @param args
* @throws FileNotFoundException //这里是所要抛出的异常
*/
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream(""); //一个输入流 你可以在这这列填写你要读取的文件路径。
} catch (FileNotFoundException e) {
System.out.println("1111111111111");
//return;
System.exit(0);
}finally { //加了final说明程序必须走的最后一步。
System.out.println("finally");
try { //是为了程序能够正走下一步,如果不加try那么程序在这里会直接抛出异常
fis.close();
} catch (IOException e) { //catch是捕捉异常,意思就是如果try中产生什么异常,那么try会把异常扔进catch中,让catch来处理。
e.printStackTrace();
}
}
}
}
void a(String s) throws Exception {
throw new Exception();
}
void b(String s){
try{throw new Exception();}catch(Exception e){}
}
void c(String s) {
try {
a(s);
} catch (Exception e) {
}
}
void d(String s) throws Exception {
a(s);
}
在方法a.b中我用声明了一个异常,方法a中没有对异常进行处理,用throws抛出去,意思就是我这个方法有问题,但是我不处理,谁调用这个方法谁处理。方法b中用try对异常进行处理,这个异常在方法b中就被解决了,不会给调用b方法的其他方法造成麻烦。
在方法c中调用了有异常声明的方法a,用try处理后这个异常就不会出现在调用c的方法中,在方法d中调用a方法,但是没有对异常处理,继续向上抛,