捕获 .Net 中的异常号

Mah*_*esh 0 .net exception try-catch

我正在尝试获取Catch块中的Unique/Primary key Exception数字。(2627)

异常编号可作为属性Number in获取e.InnerException.InnerException(如图所示)在此输入图像描述

但是当我尝试检索该数字时,我得到 - “异常”不包含“数字”的定义..(参见带问号的图像)

  1. 为什么我无法检索这个号码,即使它显然是一个财产
  2. 如何检索异常编号。

sst*_*tan 5

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

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

((SqlException)e.InnerException.InnerException).Number
Run Code Online (Sandbox Code Playgroud)