Я пытаюсь добавить обработчик необработанных исключений в .net(С#), который должен быть как можно более полезным для "пользователя". Конечные пользователи в основном программисты, поэтому им просто нужно намекнуть, какой объект они манипулируют неправильно.
Я разрабатываю окна, похожие на отчет об ошибках Windows XP при сбое приложения, но это дает как можно более достоверную информацию об исключении.
В то время как трассировка стека позволяет мне (поскольку у меня есть исходный код), чтобы определить источник проблемы, пользователи не имеют ее, и поэтому они теряются без дополнительной информации. Излишне говорить, что я должен тратить много времени на поддержку инструмента.
Есть несколько системных исключений, таких как KeyNotFoundException, которые вызывают коллекция Dictionary, которые действительно меня пугают, поскольку они не включают в сообщение ключ, который не был найден. Я могу заполнить свой код тоннами блоков catch catch, но он довольно агрессивен и содержит намного больше кода для поддержки, не говоря уже о тонне больше строк, которые должны быть локализованы.
Наконец, вопрос: есть ли способ получить (во время выполнения) значения аргументов каждой функции в трассировке стека вызовов? Только это может решить 90% запросов на поддержку.