java.lang.ArithmeticException: / by zero

ArithmeticException对我来说,是一个很重要的异常。因为之前学Java异常的时候,第一个demo就是讲这个。

  不对异常进行处理:

java.lang.ArithmeticException: / by zero_第1张图片

  对异常进行处理:

java.lang.ArithmeticException: / by zero_第2张图片

  很明显:如果一个程序从开始到结束的流程中,在中间有一个未经处理的异常,则这个异常之后的代码不会执行,程序也不会正常执行到最后并结束。

  而当对这个异常进行处理之后,分成三块:try块内,异常之后的代码会跳过,跳到catch块内执行该块内的代码。而后,正常执行这些代码块之后的代码。程序可以正常结束。

 

今天发现一点:

java.lang.ArithmeticException: / by zero_第3张图片

java.lang.ArithmeticException: / by zero_第4张图片

  很奇怪,后面的这种写法为什么没有抛异常。

  官方文档中对ArithmeticException的定义:

Thrown when an exceptional arithmetic condition has occurred. 
For example, an integer "divide by zero" throws an instance of this class.
当出现异常的运算条件时,抛出此异常。
例如,一个整数“除以零”时,抛出此类的一个实例。

  这就是double x = 6.0 / 0.0不会抛出异常的原因。。

你可能感兴趣的:(java,java_tips)