У меня есть приложение 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