Exceção capturando da base da classe
-
25-09-2019 - |
Pergunta
Eu tenho uma classe base e gostaria de pegar todas as exceções da classe derivada da classe base, isso é possível?
Você não saberá quais são os métodos da classe derivada.
Solução
Você precisa fornecer mais detalhes sobre seu cenário específico. No entanto, se, por exemplo, você tem uma classe abstrata base que fornece um contrato e deseja capturar todas as exceções possíveis lançadas por classes derivadas ao ligar para o contrato de classe base, você pode fazer algo assim:
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 { /* ... */ }
}
}
Outras dicas
Por Chamando aula Você quer dizer uma classe derivada ou métodos de chamada de classe não relacionados de uma classe derivada de sua base?
Eu acho que você pode fazer isso transformando sua base em uma aula de proxy. Ver um proxy dinâmico exemplo.