gpt4 book ai didi

java - 多次声明相同的检查异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:16 26 4
gpt4 key购买 nike

我刚刚意识到我可以编写一个方法多次声明相同的检查异常。

public void myMethod() throws MyException, MyException, MyException {

我想不出我想要这样做的原因。我已经搜索了一段时间,但我无法找到是否有资源可以解释为什么这是可以接受的或者它怎么会好。任何人都可以指出一些关于此的资源吗?

最佳答案

JLS 中没有任何内容可以阻止您在 throws 子句中指定相同的异常类型(甚至子类型)。唯一的限制,根据 JLS, Section 8.4.6 , 是:

It is a compile-time error if an ExceptionType mentioned in a throws clause is not a subtype (§4.10) of Throwable.

所以,这个编译:

throws RedundantException, RedundantException, RedundantException

我的 IDE 警告我“重复抛出”,但这不是编译器错误。

我认为没有充分的理由这样做。我从来没有想过要尝试这样做。

这会编译,即使 MySubclassExceptionMyException 的子类:

throws MyException, MySubclassException, MyException, MySubclassException

我能想到的在 throws 子句中列出子类异常类型的唯一原因是在您自己的 Javadoc 中记录子类可能会被抛出,因此可以单独处理。

@throws MyException If something general went wrong.
@throws MySubclassException If something specific went wrong.

即便如此,我的 IDE 还是警告我列表中存在“更普遍的异常”。

顺便说一句,上面示例中是否检查了任何异常类型似乎并不重要。

关于java - 多次声明相同的检查异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28308141/

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