来自异常的HResult是否总是非零?

时间:2016-05-19 02:37:53

标签: .net exception

.NET引发的异常的HResult属性是否总是具有非零值?

2 个答案:

答案 0 :(得分:1)

是。 HResult = 0是

  

S_OK操作成功0x00000000

一般人力资源信息:https://msdn.microsoft.com/library/windows/desktop/aa378137.aspx

HResults映射到例外:https://msdn.microsoft.com/en-us/library/9ztbc5s1(v=vs.110).aspx

答案 1 :(得分:1)

来自文档(https://msdn.microsoft.com/en-us/library/system.exception.hresult(v=vs.110).aspx):

  

每个异常都映射到一个不同的HRESULT

......一个强有力的指标,表明它们永远不会为零。

然而,这些也可以通过代码设置(Map HRESULTS to Exceptions),所以我倾向于认为它是其中一种情况“最好不要假设它总是非零,即使它实际上总是非零的:

  

用户定义的异常类可以指定任何适合的HRESULT。通过在异常对象上设置HResult字段生成异常时,这些异常类可以动态更改要返回的HRESULT。