我正在创建一个.NET程序集,需要从VB6等环境中调用COM。
大部分功能都正常,我现在在微调错误处理。
我想要做的是为我的异常创建特定的HRESULT值,例如使用如0x88880001等值来处理异常情况。 我想使用一个通用的"前缀"(如0x8888),然后将我的内部错误代码(从十进制1001开始)添加到该编号中。
因此,我的内部错误1001应变成HRESULT = 0x888803E9等等。
我有自己定制的.NET异常类,并且我知道可以在基本的ApplicationException类上设置受保护的HResult属性,但不知为何不能使我的"前缀"加上我的错误代码工作....
使用System;
无论我在这里尝试什么 - 我都无法得到一个代表0x888803E9的int值(对于base.HResult,它是一个int),以便将其存储到我的基类中... 我错过了什么?
大部分功能都正常,我现在在微调错误处理。
我想要做的是为我的异常创建特定的HRESULT值,例如使用如0x88880001等值来处理异常情况。 我想使用一个通用的"前缀"(如0x8888),然后将我的内部错误代码(从十进制1001开始)添加到该编号中。
因此,我的内部错误1001应变成HRESULT = 0x888803E9等等。
我有自己定制的.NET异常类,并且我知道可以在基本的ApplicationException类上设置受保护的HResult属性,但不知为何不能使我的"前缀"加上我的错误代码工作....
使用System;
public class CustomException : ApplicationException
{
public CustomException(string message, int errorCode) : base(message)
{
base.HResult = (uint) 0x88880000 + errorCode;
}
}
无论我在这里尝试什么 - 我都无法得到一个代表0x888803E9的int值(对于base.HResult,它是一个int),以便将其存储到我的基类中... 我错过了什么?