我对整个捕获处理异常概念有些陌生,我想知道为什么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。所以我在那里看不到任何问题!