Если вы поместите вызов RaiseAlert в каждый метод, полученные вами стеки ошибок будут очень запутанными, если не неточными, при условии, что вы повторно используете методы. Метод регистрации должен действительно вызываться только в событиях или самом верхнем методе (ах). Если кто-то выдвигает вопрос о том, что обработка исключений должна быть в каждом методе, он не понимает обработку исключений.
Пару лет назад мы внедрили практику, согласно которой обработку исключений необходимо выполнять в каждом событии, и один разработчик считал это «каждым методом». Когда они были закончены, у нас были недели, которые стоило бы отменить, потому что ни одно исключение не было воспроизведено. Полагаю, они знали лучше, чем вы, но никогда не сомневались в обоснованности их интерпретации.
Реализация AppDomain.UnhandledException является хорошей резервной копией, но единственным выходом для этого метода является уничтожение приложения после регистрации исключения. Чтобы предотвратить это, вам нужно написать глобальный обработчик исключений.