【发布时间】:2015-10-02 23:56:39
【问题描述】:
我正在创建一个 .NET 程序集,该程序集需要可从例如 COM 调用。 VB6等
大多数东西都可以正常工作 - 我现在正在微调我的错误处理。
我想做的是为我的异常创建特定的 HRESULT 值 - 例如对于我的异常情况,请使用 0x88880001 等值。
我想使用一个通用的“前缀”(例如0x8888),然后将我的内部错误代码(从十进制的 1001 向上运行)添加到该数字。
所以我的内部错误 1001 应该变成 HRESULT = 0x888803E9 等等。
我有自己的自定义 .NET 异常类,我知道我可以在基础 ApplicationException 类上设置受保护的 HResult 属性 - 但不知何故我无法获得我的“前缀”加上我的错误代码上班……
使用系统;
public class CustomException : ApplicationException
{
public CustomException(string message, int errorCode) : base(message)
{
base.HResult = (uint) 0x88880000 + errorCode;
}
}
无论我在这里尝试什么 - 我都无法将代表0x888803E9 的int 值(对于base.HResult,这是一个int)存储到我的基类中......
我在这里错过了什么??
【问题讨论】:
标签: c# exception-handling com com-interop hresult