.NET引发的异常的HResult
属性是否总是具有非零值?
答案 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。