在.Net中捕获异常编号

时间:2016-08-19 16:53:56

标签: .net exception try-catch

我正在尝试获取 Catch 块中的(2627)e.InnerException.InnerException

例外号码在{{1}}中可用作 号码 的属性(如图所示)enter image description here

但是当我尝试检索该号码时,我得到了 - '异常'不包含' Number' 的定义..(见带问号的图片)

  1. 为什么我无法检索此号码,即使它显然是属性
  2. 如何检索例外号码。

1 个答案:

答案 0 :(得分:2)

这是因为e.InnerException.InnerException的类型为Exception,但没有Number属性。要访问Number属性,您需要强制转换为e.InnerException.InnerException的预期运行时类型。

在这种情况下,运行时类型看起来像SqlException。如果是这种情况,那么您可以像这样表达您的手表(假设您使用的是C#):

((SqlException)e.InnerException.InnerException).Number