这是我的用例 - 我有这种风格的代码
try {
someMethod();
} catch (Exception e) {
LOGGER.error("exception occurred", e);
//potentially more code
}
而且该方法的定义很简单
public void someMethod() {
//do something that doesn't throw an exception
}
我想找到所有try...catch
块,它们捕获顶级Exception
类并包装没有明确抛出任何异常的代码。 IntelliJ IDEA有可能吗?
为了澄清,我知道冗余'抛出'条款检查 - 这是在它之后清理。
我也知道Catch块可能会忽略异常检查 - 这不能理解我所描述的情况,因为代码中使用了异常。问题是代码实际上没有抛出异常。因此,理论上它可能会捕获NullPointerException
或另一个未经检查的异常,但我会进一步分析这是否确实有用。我的目标是删除所有不需要的异常处理代码。
您可以通过Inspections菜单访问此警告,然后搜索Overly broad catch block
:
启用此检查后,所有捕获块都标记为过宽。您还可以将检查限制为仅警告RuntimeException
,Exception
和Throwable
: