【问题标题】:Intellij Structural Search: How to find empty try catch blocks?Intellij 结构搜索:如何找到空的 try catch 块?
【发布时间】:2016-11-16 22:31:05
【问题描述】:

如何找到空的 try catch 块?

使用复制现有模板...我找到了try catch的结构搜索:

try {
  $TryStatement$;
} catch($ExceptionType$ $Exception$) {
  $CatchStatement$;
}

我想增强它,使它只找到带有空 catch 块的 try catch

它应该找到:

 try {
        assertTrue(output.validate());
    } catch (Exception e) {
        //TODO something
    }

    try {
        assertTrue(output.validate());
    } catch (Exception e) {

    }

try {
        assertTrue(output.validate());
    } catch (Exception e) {}

但不是:

 try {
        assertTrue(output.validate());
    } catch (Exception e) {
        e.printStackTrace();
    }

现在它显然找到了两者,因为它们之间没有区别。 如何添加此额外检查?

【问题讨论】:

  • 除了使用结构搜索之外,您还可以执行以下操作:Analyze / Run Inspection by Name / Empty 'catch' Block
  • thx,但它没有像第一个示例那样找到带有注释的空捕获。
  • Empty 'catch' block 检查有一个将 cmets 计为可以禁用的内容的选项。

标签: java intellij-idea intellij-14 structural-search


【解决方案1】:

使用您找到的模板并在 CatchStatement 变量上将 Min count 和 Max count 设置为 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多