ICorProfilerCallback::ExceptionCatcherEnter 方法

通知探查器正在将控件传递给适当的 catch 块。

HRESULT ExceptionCatcherEnter(
    [in] FunctionID functionId,
    [in] ObjectID   objectId);

参数

  • functionId
    [in] 包含 catch 块的函数的标识符。

  • objectId
    [in] 所处理的异常的标识符。

备注

只有捕获点位于用实时 (JIT) 编译器编译的代码中时,才会调用 ExceptionCatcherEnter 方法。 在非托管代码或运行时的内部代码中捕获的异常将不会调用此通知。 由于垃圾回收可能在 ExceptionThrown 通知后移动了对象,因此将再次传递 objectId 值。

探查器不应阻止其实现此方法,因为堆栈所处的状态可能不允许执行垃圾回收,因而无法启用抢先垃圾回收。 如果探查器此时进行阻止并尝试执行垃圾回收,则运行时将阻塞,直到此回调返回为止。

探查器在实现此方法时,不应调入托管代码或以任何方式导致托管内存分配。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorProf.idl、CorProf.h

**库:**CorGuids.lib

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

ICorProfilerCallback 接口

ICorProfilerCallback::ExceptionCatcherLeave 方法