我有一个带有方法的类,该方法会抛出一些异常并在自身内部捕获它们,但是当我在我的 Main 类中调用它时,它们似乎没有被捕获。
关于我的问题的示例:
public class Test {
public static void method (int number) throws InvalidNumberException {
try {
if (number == 5) {
throw new InvalidNumberException("Invalid number");
}
} catch (InvalidNumberException inv) {
System.out.println(inv);
}
}
}
public class InvalidNumberException extends Exception {
public InvalidNumberException (String s) {
super(s);
}
}
public class Main {
public static void main(String args[]) {
Test.method(5);
}
}
当我尝试编译最后一个时,出现此错误:
主.java:3:错误:未报告的异常 无效数字异常;必须捕获或声明要抛出 测试方法(5);
有没有办法在不捕获主类中的异常的情况下修复它?
因为你在method
里面捕获了InvalidNumberException
,所以不需要throws
子句,但是,它的存在要求调用它必须处理异常。因此,编译器希望您在 main
中处理异常。
要解决此问题,只需删除修改method
的 throws
子句,因为您已经在里面处理异常。