Почему я не могу записать ошибку? - PullRequest
0 голосов
/ 27 июня 2011

У меня есть приложение ASP.NET 2010. По сути, везде, где у меня есть причина подозревать ошибку, я использую следующую технику, чтобы попытаться ее зарегистрировать.

Try

'Code causing error here

Catch ex As Exception When LogException(ex)
Catch ex As Exception 'Here is where I would put a more specific error

End Try

Функция LogException ВСЕГДА возвращает false. Следовательно, каждое исключение должно быть перехвачено и зарегистрировано, а затем управление возвращается к следующему исключению в блоке. Что действительно происходит, так это то, что вызывается функция LogException, но прежде чем она сможет что-либо сделать, управление возвращается к следующему исключению в блоке выше. Почему?

Редактировать ... Вот функция, которая вызывается, но возвращает после 1-й строки ...

Public Function LogException(ByVal ex As Exception) As Boolean
        Dim oExceptionMgt As New ExceptionMgt 'This line runs
        oExceptionMgt.LogException(ex) 'This line should go to db to log error. 
Return False
    End Function

1 Ответ

0 голосов
/ 27 июня 2011

Хотя я не программист VB, если я вижу такое условие, как:

do something when somecondition

Это логически говорит, что делать something можно только тогда, когда somecondition истинно.Поэтому в вашем примере код выполняется правильно, потому что ваш метод LogException(Exception ex) всегда ложен.Что, в свою очередь, означает, что в этом случае не выполняйте something и продолжайте выполнение.

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