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 起可用