Поймать внутреннее исключение - но только если оно есть! - PullRequest
2 голосов
/ 14 марта 2011

Я пытаюсь поймать исключение, но иногда получаю внутреннее исключение.Я хочу вывести оба в метку.Я часто получаю ссылку на объект, не установленную на экземпляр объекта, если нет внутреннего исключения.

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 ]

3 голосов
/ 14 марта 2011

Измените его на:

 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 голос
/ 14 марта 2011

Поскольку в ответе MattC не указана причина, по которой ваш код не работает:

Вы получаете ошибку «Ссылка на объект не установлена ​​на экземпляр объекта» из-за части ex.InnerException.Message; если «ex.InnerException» равно нулю, у него не будет «Message».

Каждый раз, когда вы пытаетесь получить несколько уровней вниз по объектам, которые вы не знаете, существуют ли они или нет, вам нужно создать их (т.е. )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...