Try-Catch-Finally

在Try-Catch-Finally结构中,finally语句块一般是会被执行到的,不管有没有异常产生,即使try语句或者catch语句里有return语句,finally模块也会被执行。如果try或者catch模块中有System.exit(0),则程序直接退出,finally模块不会被执行。

例子


class Test {
 public int aaa() {
  int x = 1;

  try {
   return ++x;
  } catch (Exception e) {

  } finally {

   ++x;
   System.out.println("x =" + x);
  }
  return x;
 }
}

public class StringTest {

 public static void main(String[] args) {
  Test a = new Test();
  int y = a.aaa();
  System.out.println("x =" + y);
 }
}
程序在执行try 模块的return 语句之前,先执行++x,在去执行finally 模块语句,最后返回的是try模块里x的值

猜你喜欢

转载自201505240204.iteye.com/blog/2265820