我发现在IO
操作中有时会抛出常见的IOException
异常。我可以使用Marshal.GetHRForException(Exception e)
方法(在这里找到)来确定特定的错误代码。然后,我想重新抛出一个异常,并使用我的应用程序特定的错误代码,以便向用户提供一些有关出错原因的提示。但是我无法找到IOException
可能的HResult值列表。
我遇到的另一个问题是,对于不同的HResult代码,根本原因可能是相同的,例如0x8007052E和0x80070569都对应于登录失败:未知用户名或错误密码。
我尝试搜索类似“IOException HResult值”的内容,但没有特殊的映射IOException HResult与易读错误的文档(如this或this)。
我还看到了这里的问题,非常相似,但仍然没有解决方案。
所以,IOException HResults值的文档在哪里?
Exception.HResult
属性的getter现在是公开的,可以直接使用。此外,对GetHRForException()
的调用具有通常不希望出现的副作用,因此应避免使用该方法(请参阅https://blogs.msdn.microsoft.com/yizhang/2013/01/18/marshal-gethrforexception-does-more-than-just-get-hr-for-exception/) - Peter Duniho