在尝试理解Java代码时,我有时希望找到所有代码,其中某个自定义异常(即java.lang.Exception
的子类)被抛出。
为此,在Eclipse中我可以在Exception类上使用“Find References”。但是,它会找到抛出这两个地方并将捕获放置在异常位置。
有没有办法专门找到抛出某个异常的代码?
相关问题:Eclipse: find lines in a block that can throw exceptions
然而,这个问题是关于在单个代码块中查找所有位置,而我的问题是关于在项目的多个类中查找所有位置。
答案 0 :(得分:2)
在IntelliJ中,您可以进行所谓的"结构搜索"。使用此结构搜索" new A()"确实找到下面使用的所有3个实例:
private static class A { }
public static void main(String[] args) {
new A();
new
A();
new A(
);
}
https://www.quora.com/How-can-IntelliJ-style-Structural-Search-and-Replace-be-done-on-Eclipse通过做一个简单的"提示在Eclipse中做同样的事情。使用正则表达式进行搜索并在正则表达式中尽可能使用\W
来"忽略"换行符,空格,制表符等new(\W+)A(\W*)\(
实际上效果很好。
我知道这不是一个完整的答案,但也许你可以找到更多知道IntelliJ用于此目的的术语
答案 1 :(得分:2)
这可以通过使用"Java Search",并将匹配限制为实例创建。
说明:
两个限制:
答案 2 :(得分:1)
假设我们没有讨论像NPE或ClassCastException这样的间接抛出,并且假设我们在创建异常的地方抛出异常,则可以调用Exception构造函数的调用层次结构。
Eclipse的“调用层次结构”不仅可以用于方法,还可以用于类 - 然后它将显示所有构造函数的调用。使用Exception类上的Call Hierarchy来查找构造函数调用,即使在第3级库中也是如此。