繁体   English   中英

在Eclipse中,如何找到引发某些Exception的Java代码?

[英]In Eclipse, how can I find Java code that throws a certain Exception?

当试图理解Java代码时,有时我想在引发特定自定义异常(即java.lang.Exception的子类)的地方找到所有代码。

为此,在Eclipse中,可以对Exception类使用“查找引用”。 但是,这种认定, 抛出 捕捉异常,这两个地方和场所。

有没有一种方法可以专门查找引发某些异常的代码?


相关问题: Eclipse:在块中查找可能引发异常的行

但是,这个问题是关于在单个代码块中查找所有位置,而我的问题是关于在项目的多个类中查找所有位置。

在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-on-Eclipse暗示了在Eclipse中通过使用正则表达式和“简单”搜索进行相同的操作在正则表达式中尽可能使用\\W来“忽略”换行符,空格,制表符等new(\\W+)A(\\W*)\\(实际上效果很好。

我知道这不是一个完整的答案,但是也许您可以了解更多有关IntelliJ用于此目的的术语

这可以通过使用“ Java Search”并将匹配项限制为实例创建来实现。


说明:

  • 打开“ Java搜索”(菜单“搜索” /“ Java ...”或工具栏图标)
  • 作为搜索词,输入您要查找的异常的全限定名称
  • “搜索”:“类型”
  • “限制为”:“匹配位置”,然后在链接的详细信息选择中,仅选择“类实例创建”

两个限制:

  • 这还会找到创建异常而不抛出异常的代码(不常见,但可能)。
  • 这会不会发现,捕捉,然后重新抛出异常的代码-这可能是也可能不是你想要的。

类似的Eclipse错误296947的启发

假设我们不是在谈论像NPE或ClassCastException这样的间接抛出,并假设我们在创建异常的地方抛出了Exception异常,则可以调用Exception的构造函数的调用层次结构。

Eclipse的“调用层次结构”不仅可以在方法上使用,还可以在类上使用-然后它将显示所有构造函数调用。 即使在3级库中,也可以对Exception类使用“调用层次结构”来查找构造函数调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM