首页 > 编程 > Java > 正文

finally 一定会执行(实例代码)

2020-01-31 16:50:12
字体:
来源:转载
供稿:网友

如下所示:

class Exc{ int a; int b;}  public class Except { @SuppressWarnings("finally") static int compute (){ Exc e = new Exc(); e.a = 10; e.b = 10; int res = 0 ; try{  res = e.a / e.b;  System.out.println("try ……");  return res + 1;   }catch(NullPointerException e1){  System.out.println("NullPointerException occured"); }catch(ArithmeticException e1){  System.out.println("ArithmeticException occured"); }catch(Exception e3){  System.out.println("Exception occured"); }finally{  System.out.println("finnaly occured"); } System.out.println(res);   return res+3; }  public static void main(String[] args){ int b = compute(); System.out.println("mian b= "+b); }}

输出:

try ……finnaly occuredmian b= 2

结论: 如果没有异常, 则执行try 中的代码块,直到 try 中的 return,接着执行 finally 中的代码块,finally 执行完后 , 回到try 中执行 return 。退出函数。

class Exc{ int a; int b;}  public class Except { @SuppressWarnings("finally") static int compute (){ Exc e = new Exc();// e.a = 10;// e.b = 10; int res = 0 ; try{  res = e.a / e.b;  System.out.println("try ……");  return res + 1;   }catch(NullPointerException e1){  System.out.println("NullPointerException occured"); }catch(ArithmeticException e1){  System.out.println("ArithmeticException occured"); }catch(Exception e3){  System.out.println("Exception occured"); }finally{  System.out.println("finnaly occured"); } System.out.println(res);   return res+3; }  public static void main(String[] args){ int b = compute(); System.out.println("mian b= "+b); }}

输出:

ArithmeticException occuredfinnaly occured0mian b= 3

结论: 如果try 中有异常, 则在异常语句处,跳转到catch 捕获的异常代码块, 执行完 catch 后,再执行 finally ,跳出 try{}catch{}finally{} ,继续向下执行,不会去执行try中 后面的语句。

以上这篇finally 一定会执行(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表