Как получить все поля и свойства, а также значения при перехвате исключений

#c# #exception #reflection

Вопрос:

В дополнение к захвату исключения и его регистрации я пытаюсь получить все имена полей и свойств и значения, принадлежащие классу, в котором было вызвано исключение. Затем эти данные будут зарегистрированы и отправлены мне моими клиентами.

Эта информация может быть получена в блоке catch метода виновника try/catch с использованием отражения, однако как я могу получить данные, относящиеся к классу, если исключение не поймано в этом блоке catch.

Я улавливаю все исключения для всей программы при запуске.

Изменить: Я пытаюсь извлечь свойства класса из глобального улова исключений, и, похоже, это невозможно. Я приму «это невозможно» в качестве ответа, если это так.

Комментарии:

1. Этот вопрос должен включать более подробную информацию и прояснять проблему.

2. Исключение не включает в себя «какой объект?» как свойство, поэтому, если вы не делаете это сами в момент, когда он брошен или пойман (и, предположительно, переосмыслен): вы не можете.

3. Вы можете создать аварийный дамп при возникновении исключения, но это немного сложнее, чем просто запрашивать свойства исключения.

4. Короче говоря, вам не нужно этого делать (даже если бы вы могли). Используйте хорошую структуру ведения журнала, настройте подробное ведение журнала, и вы сможете понять все, что необходимо для решения вашей проблемы. Глобальный обработчик исключений должен поддерживать работу вашего приложения, когда все остальное выходит из строя, а не быть инструментом для отладки вашего приложения.