Closed gaufung closed 2 weeks ago
在 C# 异常处理中,通常我们只会关心 Message
, Stack Trace
等等内容,那么 HResult
这段字段代表什么意思呢?
首先 HResult
是 Handle to result
的简写,它是标准的在不同组件之间交流的错误信息的方式,它是一个 32 位的整型数据,包含了三个内容
try
{
int a = 1;
int b = 0;
int c = a / b;
}
catch (System.Exception e)
{
var isFailure = (e.HResult & 0x80000000) != 0; // isFailure is true
var facility = (e.HResult & 0x7FFF0000) >> 16; // facility is 2
var code = (e.HResult & 0xFFFF); // code is 18
System.Console.WriteLine($"isFailure: {isFailure}, facility: {facility}, code: {code}");
}
你也可以去 www.hresult.info 这个网站查询详细信息
https://blog.elmah.io/understanding-the-exception-hresult-property-in-c/