zoukankan      html  css  js  c++  java
  • 09—异常处理—动手动脑

    1、请尝试解释一下奇怪的现象。

    代码执行时不发生异常。

    jvm在处理浮点数时,生成的是ddiv字节码指令,i/0,0转化为浮点数0.0,而0.0是double类型的,并不精确,所以不会抛出异常。

    jvm在处理整数时,生成的是idiv字节码指令,整数除0就是除0,会抛出异常。

    第一个程序没有执行finally?

    finally 块必须与 try 或 try/catch 块配合使用。因为没有执行try,所以不会执行finally,异常是系统捕获的,try并没有抛出。

    此外,不可能退出 try 块而不执行其 finally 块。如果 finally 块存在,则它总会执行。

    (无论从那点看,这个陈述都是正确的。有一种方法可以退出 try 块而不执行 finally 块。如果代码在 try 内部执行一条 System.exit(0); 语句,

    则应用程序终止而不会执行 finally 执行。另一方面,如果您在 try 块执行期间拨掉电源,finally 也不会执行。)

    2.多层的异常捕获

    catchwho.java

    catchwho2.java

    3.EmbedFinally.java

     

    总结try catch finally

    1)try抛出一个异常之后,程序会跳出try,不再执行try后边的语句,开始对catch进行匹配,处理异常;

    2)try嵌套中,抛出的异常只有被处理才可以按顺序抛出下一个异常,如果不处理,程序就终止;

    3)try抛出异常之后,就跳出了try语句,内层catch无法捕获就继续向外抛,所以外层也就有异常,外层语句不执行,第二个程序 throw  new ArithmeticExcepption没有执行。

    4)第三个程序,try第一层第二层没有异常不用捕获,执行完之后到第三层,除0有异常,catch捕获,执行第三层的finally然后,顺序执行第二层,第一层的finally。

  • 相关阅读:
    bind(),live(),delegate(),on()绑定事件方式
    3 《锋利的jQuery》jQuery中的DOM操作
    表格功能
    5.2 《锋利的jQuery》jQuery对表格的操作(选项卡/换肤)
    4.1 《锋利的jQuery》jQuery中的事件
    5.1 《锋利的jQuery》jQuery对表单的操作
    4.2 《锋利的jQuery》jQuery中的动画
    2 《锋利的jQuery》jQuery选择器
    回流(reflow)与重绘(repaint)
    BOX2d绘制曲线
  • 原文地址:https://www.cnblogs.com/ggrm/p/7847143.html
Copyright © 2011-2022 走看看