Хотя идея получить каждое исключение кажется интересной, она может быть излишней.
По своему опыту я обнаружил, что наличие каркаса журналирования (такого как log4net), который настраивается во время выполнения, прекрасно справляется с этим сценарием.
Есть ряд преимуществ.Самое большое преимущество, которое я обнаружил, заключается в том, что если вы используете регистратор для каждого класса, вы можете настроить его, когда хотите получать электронные письма об исключениях на уровне класса.
Это означает, что для тех исключений, которые считаются известными и не критичными, вы можете просто изменить конфигурацию, чтобы отключить (скажем) отчеты по электронной почте для этого исключения, но оставить запись в текстовом файле на диске.
Поскольку все эти параметры настроены в вашей конфигурации ведения журнала, операционная группа, ответственная за ее мониторинг, может изменять конфигурацию без необходимости изменять код вашего приложения.
С некоторыми каркасами ведения журналов вы можете даже выполнить эту реконфигурацию, пока приложение еще работает.
Единственный недостаток, это то, что вам нужно быть внимательным в разбрасывании информации о каротаже, где бы у вас ни был блок улова.