下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

如何用java中的finally清除违例

作者:课课家教育     来源: http://www.kokojia.com点击数:722发布时间: 2016-02-17 21:46:50

标签: java构建器java编程java对象

大神带你学编程,欢迎选课

  无论一个违例是否在try块中发生,我们经常都想执行一些特定的代码。对一些特定的操作,经常都会遇到这种情况,但在恢复内存时一般都不需要(因为垃圾收集器会自动照料一切)。为达到这个目的,可在所有违例控制器的末尾使用一个finally从句。所以完整的违例控制小节象下面这个样子:

如何用java中的finally清除违例_java构建器_java编程_课课家

  try {

  // 要保卫的区域:

  // 可能“掷”出A,B,或C的危险情况

  } catch (A a1) {

  // 控制器 A

  } catch (B b1) {

  // 控制器 B

  } catch (C c1) {

  // 控制器 C

  } finally {

  // 每次都会发生的情况

  }

  ④:C++违例控制未提供finally从句,因为它依赖构建器来达到这种清除效果。

  为演示finally从句,请试验下面这个程序:

  //: FinallyWorks.java

  // The finally clause is always executed

  public class FinallyWorks {

  static int count = 0;

  public static void main(String[] args) {

  while(true) {

  try {

  // post-increment is zero first time:

  if(count++ == 0)

  throw new Exception();

  System.out.println("No exception");

  } catch(Exception e) {

  System.out.println("Exception thrown");

  } finally {

  System.out.println("in finally clause");

  if(count == 2) break; // out of "while"

  }

  }

  }

  } ///:~

  通过该程序,我们亦可知道如何应付Java违例(类似C++的违例)不允许我们恢复至违例产生地方的这一事实。若将自己的try块置入一个循环内,就可建立一个条件,它必须在继续程序之前满足。亦可添加一个static计数器或者另一些设备,允许循环在放弃以前尝试数种不同的方法。这样一来,我们的程序可以变得更加“健壮”。

  输出如下:

  Exception thrown

  in finally clause

  No exception

  in finally clause

  无论是否“掷”出一个违例,finally从句都会执行。

赞(16)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程