异常_try…catch…finally处理异常_过程解析
public void show(){
try{
//1.打开文件
//2.读写文件
return ;
}catch(异常类型 变量名){
return ;
}finally{
//无论是否出现异常,都会被执行的代码
//3.关闭文件
}
}
例如:
show(){
try{
System.out.println("a");
System.out.println(10 / 0);
return;
}catch(Exception e){
System.out.println("b");
return;
}finally{
System.out.println("c");
}
}
main(){
show();//abc
}
1.finally的执行时机:是在执行return语句的过程中;
2.finally通常用于:关闭资源。无论是否出现异常,都要做的事情。
异常_面试题之如果在finally之前有return
题目一:
show(){
int a = 10;
try{
a = 20;
return a;//1.将a的缓存起来一份;2.执行finally;3.回来return的是之前缓存的那个值;
}catch(Exception e){
a = 30;
return a;
}finally{
a = 40;
}
}
main(){
System.out.println(show());//20
}
题目二:
show(){
int a = 10·;
try{
a = 20;
return a;//1.将a的缓存起来一份;2.执行finally;缓存更改a=40 3.结果为缓存的return那个值;
}catch(Exception e){
a = 30;
return a;
}finally{
a = 40;
return a;//出现警告
}
}
main(){
System.out.println(show());//40
}