Вы можете написать класс, чтобы обернуть код try catch, передавая делегаты для выполнения внутри этого блока try, что-то вроде:
public void ExecuteTryCatch<T>(Action<T> action, T genericParameter)
{
try
{
action.Invoke(genericParameter);
}
catch (Exception e)
{
//Do Logging
}
}
Возможно, есть более чистый способ, чем этот, но я быбеспокоиться о запахе кода, потому что вы привыкли ловить все исключения одинаково.На самом деле, я бы настоятельно советовал делать что-то подобное, единственный раз, когда я делал что-то подобное, было в одном классе, где я вызывал разные методы веб-сервиса и имел один метод для очистки соединения в различных типах исключений.Но это содержалось в одном классе, все методы выполняли что-то похожее, и все они хотели обрабатывать исключения точно так же.
Вы не указали, было ли это для Windows / Web, но вы должны легко иметь возможностьиметь обработчик исключений уровня приложения, который будет перехватывать все необработанные исключения для ведения журналирования всего приложения.