我对整个捕获处理异常概念有些陌生,我想知道为什么throws ArithmeticException不会在退出时而不是在编译时产生异常错误消息(在这种情况下为零)。

它不应该正常编译然后在屏幕上显示错误消息吗?我究竟做错了什么?

public class Exception_Tester
{
    public static void main(String args[])
    {
         Exception_Tester et = new Exception_Tester();
         int x1;
         int x2;
         x1 = 5;
         x2 = 0;
         et.printResults(x1, x2);
    }

    void printResults(int a, int b) throws ArithmeticException
    {
         System.out.println("Add: "+(a+b));
         System.out.println("Sub: "+(a-b));
         System.out.println("Mul: "+(a*b));
         System.out.println("Div: "+(a/b));
    }
}

最佳答案

我照原样执行了您的代码

public class Exception_Tester
{
public static void main(String args[])
{
 Exception_Tester et = new Exception_Tester();
 int x1;
 int x2;
 x1 = 5;
 x2 = 0;
 et.printResults(x1, x2);
}
void printResults(int a, int b) throws ArithmeticException
{
  System.out.println("Add: "+(a+b));
  System.out.println("Sub: "+(a-b));
  System.out.println("Mul: "+(a*b));
  System.out.println("Div: "+(a/b));
}
}


而且它可以正常编译,没有任何错误或异常,并且根据您的要求,只有在遇到System.out.println("Div: "+(a/b));语句时,它才会在运行时引发ArithmeticException。

所以我在那里看不到任何问题!

07-28 03:36