动手动脑4
一、通过测试运行实例AboutException.java,以及上课之前互相查找如何是对方代码崩溃,我了解到当条件生成时,错误将引发异常。这样也能使用户明白输入或者使用方法有误,并给予用户提示,也防止有不必要的麻烦和造成代码错误。
二、在测试运行实例AboutException.java,出现Exception in thread "main" java.lang.ArithmeticException:/by........,
double d1=100,d2=0,result; result=d1/d2; System.out.println("浮点数除以零:" + data);中却不出现异常,而出现Infinity。
是因为其中没有用到try{} catch{} finally{},没有用到异常捕获语句,所以没有出现异常,而这样最容易出现致命错误,且不易被发现。
三、阅读以下代码(CatchWho.java)
程序结果:
ArrayIndexOutOfBoundsException/内层try-catch
发生ArithmeticException
四、写出CatchWho2.java程序运行的结果
程序结果:
ArrayIndexOutOfBoundsException/外层try-catch
二、在测试运行实例AboutException.java,出现Exception in thread "main" java.lang.ArithmeticException:/by........,
double d1=100,d2=0,result; result=d1/d2; System.out.println("浮点数除以零:" + data);中却不出现异常,而出现Infinity。
是因为其中没有用到try{} catch{} finally{},没有用到异常捕获语句,所以没有出现异常,而这样最容易出现致命错误,且不易被发现。
三、阅读以下代码(CatchWho.java)
程序结果:
ArrayIndexOutOfBoundsException/内层try-catch
发生ArithmeticException
四、写出CatchWho2.java程序运行的结果
程序结果:
ArrayIndexOutOfBoundsException/外层try-catch
五、阅读 EmbedFinally.java示例
结果为:
in Level 1
in Level 2
in Level 3
Level 3:class java.lang.ArithmeticException
In Level 3 finally
In Level 2 finally
In Level 1 finally
输出结果跟由外到内,再由内到外的道理一样。
六、判断finally语句是否一定会执行
不一定会执行,try语句没有被执行到,如在try语句之前return就返回了,这样finally语句就不会执行。在try块|catch块中有System.exit(0);这样的语句,会中断finally语句的输出。