探測片段類型

您定義的每一個片段需要類型規格。類型指出何時在目標方法中執行片段。一個探測可以包含多個片段,但任一種類型不能有多個片段。

下表列出和說明片段類型,並指出類型適用於 Method 或 Callsite 探測。(關於 Method 探測和 Callsite 探測的區別,請參閱 Method 探測和 Callsite 探測的比較。)
片段類型 Method 或 Callsite 說明
entry 方法 entry 片段在方法進入時執行。Probekit 在類別內插入的方法不會執行 entry 片段。
exit 方法 exit 片段在方法結束時執行;正常結束、方法擲出異常狀況時,或擲出的異常狀況延伸到方法之外時。Probekit 在類別內插入的方法不會執行 exit 片段。
catch 方法 catch 片段在方法的 catch 子句開始時執行,或在因為異常狀況而執行的 finally 子句開始時執行。
staticInitializer 方法 staticInitializer 片段在每一個被探測類別的起始設定式內執行。如果該類別還沒有靜態起始設定程式,則會建立一個。如果需要詳細資訊,請參閱 staticInitializer 探測片段類型
executableUnit 方法 在符合探測目標和過濾器規格且可取得程式碼的方法中,每一個程式碼執行單元之前會執行 executableUnit 片段。如果這個方法沒有程式碼行資訊,則會出現一個編號為零的執行單元。如果需要詳細資訊,請參閱 executableUnit 探測片段類型
beforeCall Callsite 在發出呼叫的方法中,beforeCall 片段是在呼叫目標方法之前執行。它不適用於 Method 探測。
afterCall Callsite 在發出呼叫的方法中,afterCall 片段緊接在目標方法結束之後執行: 在正常結束或目標方法擲出異常狀況時。它不適用於 Method 探測。
附註:

一個探測在方法中的相同位置上可以套用多個片段: 例如 entry 片段和第一個 executableUnit 位置。另一個例子是 catch 片段和相關的 executableUnit 位置, 因為處理異常狀況的 catch 子句一律代表新執行單元的開頭。在這些情況下,executableUnit 片段的程式碼會在 entrycatch 片段的程式碼之後執行。結果,entry 片段(如果有的話)一定會在其他片段類型之前執行。

單一探測中不能混合 Method 片段和 Callsite 片段, 但相同的 Probekit 程式檔中(probe 檔案)可以有 Method 探測和 Callsite 探測。

範例:

若要指定片段類型,請在「探測」頁面的樹狀窗格中選取片段項目, 然後從編輯窗格的「片段類型」清單中選擇。

強調顯示「片段類型」選擇的 Probekit 編輯器

下列探測片段類型還有其他資訊:
相關參照
探測片段 Java 原始程式碼
探測片段資料項目