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一定会执行(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。