捕获内部异常 - 但仅限于有异常!

时间:2011-03-14 17:45:26

标签: asp.net-mvc vb.net exception

我正在尝试捕获异常但偶尔会获得内部异常。我想将两者都输出到标签中。 如果没有内部异常,我经常会将Object引用设置为对象的实例。

Catch ex As Exception
          exError = ex.Message.ToString
          If Not ex.InnerException.Message Is Nothing Then
     exError &= "<br/>" & ex.InnerException.Message.ToString

                End If

                Return View()
            End Try

2 个答案:

答案 0 :(得分:3)

将其更改为:

 If Not ex.InnerException Is Nothing Then
     exError &= "<br/>" & ex.InnerException.Message.ToString
 End If

或者,正如StingyJack所指出的那样:

If ex.InnerException IsNot Nothing Then
   exError &= "<br/>" & ex.InnerException.Message.ToString
End If

答案 1 :(得分:1)

由于MattC的答案并未真正说明您的代码无效的原因:

由于ex.InnerException.Message部分,您收到“对象引用未设置为对象的实例”错误;如果“ex.InnerException”为null,则它不会有“消息”。

任何时候你试图让你不知道是否存在的对象得到几个级别,你需要建立它(即ex.InnerException!= null&amp;&amp; ex.InnerException.Message!= null等等)