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