当前位置:天才代写 > tutorial > JAVA 教程 > 用finally排除违例

用finally排除违例

2017-11-13 08:00 星期一 所属: JAVA 教程 浏览:430

无论一个违例是否在try块中产生,我们常常都想执行一些特定的代码。对一些特定的操纵,常常城市碰着这种环境,但在规复内存时一般都不需要(因为垃圾收集器会自动顾问一切)。为到达这个目标,可在所有违例节制器的末端利用一个finally从句(注释④)。所以完整的违例节制小节象下面这个样子:

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从句城市执行。

 

    关键字:

天才代写-代写联系方式