Вы должны предоставить более подробную информацию о вашем конкретном сценарии. Однако, если, например, у вас есть базовый абстрактный класс, который предоставляет контракт, и вы хотите перехватить все возможные исключения, создаваемые производными классами при вызове контракта с базовым классом, вы можете сделать что-то вроде этого:
public abstract class Base
{
protected abstract void InternalFoo();
protected abstract void InternalBar();
public void Foo()
{
try { this.InternalFoo(); }
catch { /* ... */ }
}
public void Bar()
{
try { this.InternalBar(); }
catch { /* ... */ }
}
}