簡體   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