课堂作业07异常处理
一、动手动脑 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嵌套中