ICLRPolicyManager::SetActionOnFailure 方法

指定在发生指定故障时公共语言运行时 (CLR) 应执行的策略操作。

语法

HRESULT SetActionOnFailure (  
    [in] EClrFailure   failure,  
    [in] EPolicyAction action  
);  

参数

failure
[in] EClrFailure 值之一,指示要采取措施的故障类型。

action
[in] EPolicyAction 值之一,指示发生故障时要采取的操作。 有关支持值的列表,请参阅“备注”部分。

返回值

HRESULT 说明
S_OK 已成功返回 SetActionOnFailure
HOST_E_CLRNOTAVAILABLE CLR 未加载到进程中,或 CLR 处于无法运行托管代码或无法成功处理调用的状态。
HOST_E_TIMEOUT 调用超时。
HOST_E_NOT_OWNER 调用方未持有锁。
HOST_E_ABANDONED 阻塞的线程或纤程正在等待某一事件,而该事件已被取消。
E_FAIL 发生未知的灾难性故障。 某方法返回 E_FAIL 后,进程中无法再使用 CLR。 后续调用承载方法会返回 HOST_E_CLRNOTAVAILABLE。
E_INVALIDARG 无法为指定操作设置策略操作,或者为该操作指定了无效策略操作。

备注

默认情况下,CLR 在无法分配内存等资源时引发异常。 SetActionOnFailure 允许主机通过指定在发生故障时要执行的策略操作来重写此行为。 下表显示了支持的 EClrFailure(列) EPolicyAction(行) 组合值。

FAIL_NonCriticalResource FAIL_CriticalResource FAIL_FatalRuntime FAIL_OrphanedLock FAIL_StackOverflow FAIL_AccessViolation FAIL_CodeContract
eNoAction X X N/A
eThrowException X X N/A
eAbortThread X X N/A X
eRudeAbortThread X X N/A X
eUnloadAppDomain X X X N/A X
eRudeUnloadAppDomain X X X X N/A X
eExitProcess X X X X N/A X
eFastExitProcess X X X X N/A
eRudeExitProcess X X X X X N/A
eDisableRuntime X X X X X N/A

要求

平台:请参阅系统要求

标头:MSCorEE.h

库:作为资源包含在 MSCorEE.dll 中

.NET Framework 版本:自 2.0 起可用

请参阅