Пользовательские ошибки, скрытые внутренним исключением в Azure Applications Insights - PullRequest
0 голосов
/ 27 февраля 2020

Я довольно новичок в Applications Insights в Azure, но то, что я вижу на портале, совсем не то, что я ожидал (насколько я знаю!). Сценарий таков: у меня есть слой репо, который вызывает хранимую процедуру, и когда выбрасывается указанное c SqlException, я перехватываю его на своем сервисном слое и затем выбрасываю пользовательское исключение. Тем не менее, я хочу сохранить трассировку стека SqlException, поэтому я думаю, что я добавляю SqlException к внутреннему исключению, а затем выбрасываю это новое пользовательское исключение. Код выглядит примерно так:

throw new MPRNNotFoundException(ExceptionEnums.SQLExceptions.MPRNDoesNotExist.ToString(),ex)

где ex - это SqlException, которое было сгенерировано и помещено во внутреннее исключение нового MPRNNotFoundException.

Теперь, что я хочу, когда Я ловлю MPRNNotFoundException, это записать его в журнал. Все это работает отлично, за исключением Application Insights, оно выглядит как SqlException, а не как MPRNNotFoundException.

Теперь, если я повторяю тест и не устанавливаю внутреннее исключение в приведенном выше коде, он правильно отображается как MPRNNotFoundException для Application Insights.

Таким образом, похоже, что установка внутреннего исключения маскирует истинный тип исключения.

Это ошибка в Application Insights или я что-то не так делаю? Большое спасибо

...