片段探测对象是探测逻辑的规范。它包含将要执行的 Java 源代码。
至少需要一个片段对象。它包含代码对象,以及代码对象中的源代码引用的所有数据项。探测可以包含多个片段对象,但两个片段对象不能有相同的 type。
属性 | 描述 |
---|---|
type | 必需。对于方法探测,它必须是 entry、exit、catch、staticInitializer 或 executableUnit。对于 callsite 探测,它必须是 beforeCall 或 afterCall。 不能在单个探测中混合方法片段和 callsite 片段。 |
片段类型 | 探测类型 | 描述 |
---|---|---|
entry | 方法 | entry 片段在方法入口上执行。对于由 Probekit 插入到类中的方法,将不会执行 entry 片段。 |
exit | 方法 | exit 片段在方法出口上执行;无论是正常出口、方法抛出异常时还是抛出的异常传播出方法范围时。对于由 Probekit 插入到类中的方法,将不会执行 exit 片段。 |
catch | 方法 | catch 片段在方法中的 catch 子句开始处以及异常导致执行的 finally 子句的开始处执行。 |
staticInitializer | 方法 | staticInitializer 片段在每个探测的类的类初始化方法中执行。如果类尚没有静态初始化方法,则将创建一个。有关更多信息,请参阅 staticInitializer 探测片断。 |
executableUnit | 方法 | executableUnit 片段在与探测的目标和过滤器规范相匹配并且可提供源代码的方法中代码的每个可执行单元之前执行。如果该方法没有源代码行信息,则它将显示为具有单个可执行单元,编号为零。有关更多信息,请参阅 executableUnit 探测片段。 |
beforeCall | callsite | beforeCall 片段就在调用目标方法前的调用方法中执行。对于方法探测无效。 |
afterCall | callsite | afterCall 片段就在目标方法退出后的调用方法中执行;无论是正常退出还是目标方法抛出异常时。对于方法探测无效。 |
<fragment type="entry"> <data . . . /> <code> . . . </code> </fragment>