finally 一定会执行(实例代码)
如下所示:
classExc{
inta;
intb;
}
publicclassExcept{
@SuppressWarnings("finally")
staticintcompute(){
Exce=newExc();
e.a=10;
e.b=10;
intres=0;
try{
res=e.a/e.b;
System.out.println("try……");
returnres+1;
}catch(NullPointerExceptione1){
System.out.println("NullPointerExceptionoccured");
}catch(ArithmeticExceptione1){
System.out.println("ArithmeticExceptionoccured");
}catch(Exceptione3){
System.out.println("Exceptionoccured");
}finally{
System.out.println("finnalyoccured");
}
System.out.println(res);
returnres+3;
}
publicstaticvoidmain(String[]args){
intb=compute();
System.out.println("mianb="+b);
}
}
输出:
try…… finnalyoccured mianb=2
结论:如果没有异常,则执行try中的代码块,直到try中的return,接着执行finally中的代码块,finally执行完后,回到try中执行return。退出函数。
classExc{
inta;
intb;
}
publicclassExcept{
@SuppressWarnings("finally")
staticintcompute(){
Exce=newExc();
//e.a=10;
//e.b=10;
intres=0;
try{
res=e.a/e.b;
System.out.println("try……");
returnres+1;
}catch(NullPointerExceptione1){
System.out.println("NullPointerExceptionoccured");
}catch(ArithmeticExceptione1){
System.out.println("ArithmeticExceptionoccured");
}catch(Exceptione3){
System.out.println("Exceptionoccured");
}finally{
System.out.println("finnalyoccured");
}
System.out.println(res);
returnres+3;
}
publicstaticvoidmain(String[]args){
intb=compute();
System.out.println("mianb="+b);
}
}
输出:
ArithmeticExceptionoccured finnalyoccured 0 mianb=3
结论:如果try中有异常,则在异常语句处,跳转到catch捕获的异常代码块,执行完catch后,再执行finally,跳出try{}catch{}finally{},继续向下执行,不会去执行try中后面的语句。
以上这篇finally一定会执行(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。