Mic*_*yan 6 java annotations exception
我想将Java中的接口方法记录为不允许传播异常,并进行某种形式的静态分析,以验证此方法的实现捕获并处理可能传播给它的任何异常。遵循某种思路@NoThrow。
例如,我希望能够写:
interface SomeServiceProviderInterface {
@NoThrow
@NonNull
SomeResult someComputation();
}
Run Code Online (Sandbox Code Playgroud)
...并保证实现遵守该接口协定。是否已经有注释和静态分析工具?如果不是,有谁知道这是否可以通过注释处理器来实现(它可以查看代码是否包含try ... catch块吗?)和/或对实现此类操作有任何建议或建议?谢谢!
不可能有这样的注解,因为不可能保证一个方法不抛出异常。这是因为任何方法都可能VirtualMachineError在任何时候抛出 a。特别是,OutOfMemoryError 即使方法本身没有直接或间接分配内存(使用new运算符),它也可能抛出。这不仅仅是理论上的问题:如果垃圾收集线程花费太长时间,一些并发垃圾收集器会这样做。
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |