我需要显示InnerException消息,如果有,那么我需要显示主要异常的消息
这就是我所拥有的
Dim err As System.Exception = Server.GetLastError
If err.InnerException.Message = "" Then
Dim ErrorDetails As String = err.Message
Else
Dim ErrorDetails As String = err.InnerException.Message
End If
但我收到错误
有什么想法吗?
由于
杰米
答案 0 :(得分:2)
这将为您提供最里面的例外消息
while err is not nothing
ErrorDetails = err.message
err = err.innerexception
end while
编辑 -
让它看起来像这样:
Dim err As System.Exception = Server.GetLastError
Dim ErrorDetails As String
while err is not nothing
ErrorDetails = err.message
err = err.innerexception
end while
答案 1 :(得分:1)
如果没有内部异常,那么评估err.InnerException.Message
将抛出异常。你需要
If Not err.InnerException Is Nothing
答案 2 :(得分:1)
您应该在外部作用域中声明您的变量,并检查Nothing而不是空消息字符串。
Dim ErrorDetails As String
Dim err As System.Exception = Server.GetLastError
If err.InnerException Is Nothing Then
ErrorDetails = err.Message
Else
ErrorDetails = err.InnerException.Message
End If
答案 3 :(得分:0)
您可能还希望获得第一个和最后一个异常之间的所有消息。如果你有一个深层堆栈,通常第一个例外太笼统,而且最后一个例子太具体了,就像这些一样:
Dim ErrorDetails As List(Of String) = New List(Of String)
Dim err As Exception = Server.GetLastError
While Not err Is Nothing
ErrorDetails.Add(err.Message)
err = err.InnerException
End While