Я не могу понять причину, по которой вы можете извлечь выгоду из обработки всех исключений в классе с помощью одного метода (можете ли вы уточнить? Мне интересно ...)
В любом случае, вы можете использовать AOP (Аспектно-ориентированное программирование) методы для внедрения (статически или во время выполнения) кода обработки исключений вокруг методов вашего класса.
Есть хорошая библиотека постобработки сборки под названием PostSharp , которую вы можете настроить с помощью атрибутов методов вашего класса:
Вы можете определить такой аспект (с сайта PostSharp):
public class ExceptionDialogAttribute : OnExceptionAspect
{
public override void OnException(MethodExecutionEventArgs eventArgs)
{
string message = eventArgs.Exception.Message;
MessageBox.Show(message, "Exception");
eventArgs.FlowBehavior = FlowBehavior.Continue;
}
}
И затем вы примените атрибут к методам, которые вы хотите отслеживать для исключений,
как это:
public class YourClass {
// ...
[ExceptionDialog]
public string DoSomething(int param) {
// ...
}
}
Вы также можете применить атрибут ко всему классу, например:
[ExceptionDialog]
public class YourClass {
// ...
public string DoSomething(int param) {
// ...
}
public string DoSomethingElse(int param) {
// ...
}
}
Это будет применять рекомендации (код обработки исключений) ко всем методам в классе.