我无法理解此程序。我希望它输出“Hello World”,但它只打印“世界”。我认为首先try
块会执行,打印出“你好”和“”,然后当遇到1/0
时,它会抛出一个ArithmeticException
。 catch
块会捕获异常,然后会打印“World”。Java异常处理理解问题
程序如下。
import java.util.*;
class exception{
public static void main(String args[])
{
try
{
System.out.println("Hello"+" "+1/0);
}
catch(ArithmeticException e)
{
System.out.println("World");
}
}
}
为什么你在评估'1/0'之前会打印''Hello''? – user2357112
在打印任何内容之前,它必须解释'“Hello”+“”+ 1/0“的值。 ''Hello“'不会被打印出来,因为你不是在打印_just_'”Hello“',而是'”Hello“'加上导致异常的东西。 –
谢谢@ChrisSprague。我明白了。 –