Aparece o erro NullReferenceException quando tento acessar a inner exception de OperacaoFinanceiraException.
Essa é a Main, onde chamei a exceção no catch:
static void Main(string[] args) { try { ContaCorrente conta1 = new ContaCorrente(4564, 789684); ContaCorrente conta2 = new ContaCorrente(1338, 864563); conta1.Transferir(10000, conta2); } catch (OperacaoFinanceiraException ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.WriteLine("Informações da INNER EXCEPTION (exceção interna):"); Console.WriteLine(ex.InnerException.Message); Console.WriteLine(ex.InnerException.StackTrace); } Console.ReadLine(); }
A linha exata que dá erro é a que eu chamo a mensagem da inner exception.
Esse é o método da classe ContaCorrente, que lança a exceção:
`
public void Transferir(double valor, ContaCorrente contaDestino){ if (valor < 0) { throw new ArgumentException("Valor inválido para a transferência.", nameof(valor)); } try { Sacar(valor); } catch (SaldoInsuficienteException e) { ContadorTransferenciasNaoPermitidas++; throw new OperacaoFinanceiraException("Operação não realizada.", e); } contaDestino.Depositar(valor); }
`
O problema é que só dá erro quando uso a OperacaoFinanceiraException como a exceção externa, quando uso apenas Exception o código roda como esperado.