在尝试理解Java代码时,我有时想要找到抛出某个自定义异常(即java.lang.Exception
的子类)的所有代码。
为此,在Eclipse中我可以在Exception类上使用“Find References”。但是,它会找到抛出的位置和捕获异常的位置。
有没有办法专门找到抛出某个异常的代码?
相关问题:Eclipse: find lines in a block that can throw exceptions
但是,这个问题是关于在单个代码块中查找所有位置,而我的问题是关于在项目的多个类中查找所有位置。
假设我们不是在谈论像NPE或ClassCastException这样的间接抛出,并假设我们在创建异常的地方抛出异常,您可以调用Exception构造函数的调用层次结构。
Eclipse的“调用层次结构”不仅可以用于方法,还可以用于类 - 然后它将显示所有构造函数的调用。使用Exception类上的Call Hierarchy来查找构造函数调用,即使在第3级库中也是如此。
这可以通过使用"Java Search",并将匹配限制为实例创建。
说明:
两个限制:
在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用于此目的的术语