Аннотирование исключений с дополнительной информацией без их перехвата.

Иногда случаются исключения. Когда они это делают, они регистрируются и позже анализируются. Журнал, очевидно, содержит трассировку стека и другую глобальную информацию, но часто отсутствует важный контекст. Я хотел бы аннотировать исключение этой дополнительной информацией, чтобы облегчить посмертную отладку.

  • Я не хочу пытаться {...} catch {... throw;} , поскольку это считается перехватом исключения и усложняет отладку (во время разработки мне бы хотелось, чтобы приложение для остановки, и отладчик реагирует, когда выбрасывается исходное исключение, а не когда возникает самое внешнее неперехваченное исключение). Обработчики исключений первого шанса не являются обходным решением, поскольку, к сожалению, слишком много ложных срабатываний.
  • Я бы хотел избежать чрезмерных накладных расходов в нормальном, неисключительном случае.

Есть ли способ сохранить ключевые элементы контекста (например, обрабатываемое имя файла или что-то еще) в исключении таким образом, чтобы не перехватить исключение?

6
задан Eamon Nerbonne 22 November 2011 в 16:33
поделиться