gpt4 book ai didi

java - 如果我们在方法签名中写了 throws child 类型异常,我们可以在方法中抛出 Parent 类型异常吗?

转载 作者:行者123 更新时间:2023-12-02 01:23:45 31 4
gpt4 key购买 nike

public void foo1() throws OException
{
try {

} catch(Exception e) {
throw e;
}
}

OException 扩展了 Exception

OException是第三方提供的API类

我在 throw e 语句的 catch block 中遇到编译错误,内容为

unhandled exception type exception

这是因为我无法像我编写的方法签名中那样抛出 Parent 类型异常 throws OException 吗?

我可以通过以下两种方式解决此编译错误:-

  • 如果我在方法签名中抛出 Exception 而不是 OException
  • 如果我在 catch block 中抛出 OException 而不是父类型 Exception e

我的一个 friend 在他的工作区中打开了相同的代码,并且没有给他带来任何复杂的错误,所以我对这里到底发生了什么感到困惑。

有人可以解释一下吗?

最佳答案

Exception 是受检查的异常类型。这意味着您必须捕获它(使用 try { ... } catch(Exception ex) { ... } 或使用 throws 在方法中声明它。

由于 Exception 类位于异常层次结构中的 OException 之上,因此您必须将 throws OException 更改为 throws Exception >.

如果捕获并重新抛出的异常类型是 OException,则 throws 异常声明就可以了。

关于java - 如果我们在方法签名中写了 throws child 类型异常,我们可以在方法中抛出 Parent 类型异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57269135/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com