0

我需要catch在 Java 代码中找到所有带有单字母 catch 参数的块,例如:

catch (IOException e)

我尝试了以下模式,但它不起作用:

catch ($Type$ $name$)

$name$ text/regexp set to `.`
4

1 回答 1

1

可能的解决方案 1

试试现有的模板try's . 将变量编辑$ExceptionDcl$为 text/regexp.并启用This variable is target of the search。具有多个 catch 块的 Try 语句只会在此模式下找到一次。

可能的解决方案 2

要在具有多个 catch 的 try 语句中查找单个 catch 块,请使用:

$E$ $e$

$E$ Text/regexp: Throwable,在启用的类型层次结构中应用约束
$e$ Text/regexp: ., 脚本文本:__context__.parent instanceof com.intellij.psi.PsiCatchSection

背景资料

无法搜索孤独的 catch 块。搜索语言结构搜索使用用于 IntelliJ IDEA 中所有其他智能的解析器。这意味着在搜索 Java 时,每个模式都必须是有效的 Java。因此,一个不幸的限制是一个 catch 块没有被解析成可以搜索的东西。这也是为什么在 SSR 模式中不能用 $variable$ 替换关键字的原因。

于 2015-11-30T09:39:29.067 回答