我无法理解这个程序。我希望它输出“Hello World”,但它只打印“World”。我认为首先会执行 try
block ,打印“Hello”和“”,然后当它遇到 1/0
时,它会抛出一个 ArithmeticException
。异常将被 catch
block 捕获,然后打印“World”。
程序如下。
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");
}
}
}
最佳答案
调用println
函数之前抛出异常。参数值必须在函数调用之前计算。
为了让您的程序达到您期望的结果,您需要编辑 try
block 中的代码,如下所示:
try
{
// this will work and execute before evaluating 1/0
System.out.print("Hello ");
// this will throw the exception
System.out.print(1/0);
}
catch(ArithmeticException e)
{
System.out.println("World");
}
关于Java异常处理理解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107327/