【发布时间】:2019-08-02 17:48:51
【问题描述】:
我有一个网络服务。在一个方法中,我有一个 try-catch 块。然后在里面,我想获取异常代码。
我在下面尝试过:
catch (Exception e){
var w32ex = e as Win32Exception;
if(w32ex == null) {
w32ex = e.InnerException as Win32Exception;
}
if(w32ex != null) {
int code = w32ex.ErrorCode;
// do stuff
}
// do other stuff
}
...这已解释为here,但在我的情况下,它不起作用:当将异常 e 转换为 Win32Exception 时,我得到一个空值,一旦我得到一个空值,我尝试将 e.InnerException 转换为 @987654326 @ 我也得到了 null。
下面是我的例外截图:
如您所见,有一个HResult 代码。
【问题讨论】:
-
可能是异常不是 Win32Exception 类型(或派生自)?
-
@hormberg 抛出的异常属于 System.Web.Services.Protocols.SoapException 类型。如何从中获取错误代码?
-
var v = e.HResult;
-
@hormberg 我正在使用 NET 3.5,但无法访问它。我知道这在 NET 4.5 及更高版本中是可能的......
标签: c# web-services exception visual-studio-2008 .net-3.5