我正在用Java编写一个非常简单的程序,试图用用户输入的数字除以10并捕获DivideByZeroException。这是代码:
public class EnhancedCatchExceptions6 {
public static void main(String[] args) {
System.out.println();
for (int i = 0 ; i < i; i++) {
try {
int b = Input.getInt("Enter an integer to divide by:");
divide(10, b);
break;
} catch (DivideByZeroException e) {
System.out.println("Error: Divided by zero. Try again.\n");
}
}
}
public static int divide(int x, int y) throws DivideByZeroException {
System.out.println();
int result = 0;
try {result = x/y;}
catch (ArithmeticException e) {throw new DivideByZeroException(y);}
return result;
}
}
由于某种原因,返回错误:找不到每个'DivideByZeroException'的符号。如果我将DivideByZeroException更改为Exception,则不会返回该错误。当我用其他例外编写其他程序时,会出现同样的错误。
我不明白为什么会返回此错误,我将不胜感激。谢谢!
答案 0 :(得分:2)
最有可能发生这种情况,因为您忘记了import
DivideByZeroException
。更改类的第一行:
import your.package.name.DivideByZeroException;
你应该没事。当然,别忘了使用你的真实包装名称。
另一个猜测 - 如果你想要一个代表异常且带有JDK的类,而不是你自己的类,请考虑用DivideByZeroException
替换ArithmeticException
。