如何在抛出异常的方法中捕获异常(JAVA)



我有一个带有方法的类,该方法会抛出一些异常并在自身内部捕获它们,但是当我在我的 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 中处理异常。

要解决此问题,只需删除修改methodthrows 子句,因为您已经在里面处理异常。

最新更新