Elmah Raise () записывает внутреннее исключение - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь вызвать исключение, используя Elmah, вот так:

try
{
    Foo();
}
catch (WebException ex)
{
    var nex = new Exception("Foo failed", ex);
    Elmah.ErrorSignal.FromCurrentContext().Raise(nex);
}

Однако записи Elmah - это внутреннее исключение ex, а не мое новое исключение оболочки nex, т.е.запись базы данных имеет:

Type = "System.Net.WebException", Message = "The remote server returned an error: (400) Bad Request."

, а не, как я ожидал:

Type = "System.Exception", Message = "Foo failed"

Что на земле происходит?

1 Ответ

0 голосов
/ 27 сентября 2018

ELMAH показывает тип внутреннего исключения в списке исключений (/elmah.axd).Если вы нажмете ссылку «Подробности» рядом с сообщением об ошибке, я почти уверен, что вы увидите что-то вроде этого:

System.Exception: Foo failed ---> System.Net.WebException

Я только что создал тестовый проект и подтвердил, что этоэто опытное поведение.

Редактировать: Как обсуждалось в комментариях, использование базового исключения в полях Тип и Сообщение представляется предполагаемым поведением .

...