gpt4 book ai didi

java - 是否有任何标准注释来指示 Java 中的 nothrow 语义?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:28:30 25 4
gpt4 key购买 nike

我想在 Java 中记录一个接口(interface)方法,因为不允许传播异常,并进行某种静态分析来验证此方法的实现是否捕获并处理可能传播给它的任何异常。类似于 @NoThrow

例如,我希望能够写:

interface SomeServiceProviderInterface {
@NoThrow
@NonNull
SomeResult someComputation();
}

... 并保证实现遵守此接口(interface)契约(Contract)。是否有注释和静态分析工具已经可以做到这一点?如果没有,有谁知道这是否可以通过注释处理器实现(它可以查看代码是否包含 try...catch block ?)和/或对如何实现这样的事情有任何指示或建议吗?谢谢!

最佳答案

可以没有这样的注解,因为无法保证一个方法不抛出异常。这是因为 any method may throw a VirtualMachineError at anytime .特别是,一个方法可能会抛出 OutOfMemoryError 即使它本身没有直接或间接分配内存(使用 new 运算符)。这不仅仅是理论上的问题:如果垃圾收集线程花费的时间太长,一些并发垃圾收集器会这样做。

关于java - 是否有任何标准注释来指示 Java 中的 nothrow 语义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32365459/

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