我想知道为什么我的程序会以这种方式运行。
我有一个方法在尝试除以零时抛出ArithmeticException。我将此方法放在 try 块中。当它抛出异常时,如果有的话,进行的catch块将捕获此ArithmeticException。
我理解这部分是100%。
但我做了一些实验。在我的方法体中:
public static int quotient(int number1, int number2) {
if (number2 == 0)
throw new ArithmeticException("Divisor cannot be zero!");
return number1 / number2;
}
我删除了第三行。当我删除第三行时,程序仍然正常运行并完全像以前一样执行。发生时仍然会发现ArithmeticException错误。
是否因为ArithmeticException是一个未经检查的异常,并且只在运行时捕获此错误,因此我无需专门声明此程序将导致未经检查的异常?如果它是一个已检查的异常,我是否需要声明此方法将抛出未经检查的异常?
答案 0 :(得分:0)
正如您所说,算术异常是一个运行时异常,您不需要指定它会引发异常。
虽然您确实需要指定程序是否使用throws语句抛出编译时异常。您需要检查异常的一个示例是IOException。