O método Sacar está lançando uma excessão NullReferenceException na linha:
Console.WriteLine(e.InnerException.Message);
Program.cs
static void Main(string[] args)
{
try
{
ContaCorrente conta1 = new ContaCorrente(4564, 789684);
ContaCorrente conta2 = new ContaCorrente(7891, 456794);
//conta1.Transferir(10000, conta2);
conta1.Sacar(10000);
}
catch (OperacaoFinanceiraException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
//Console.WriteLine("Informações da INNER EXCEPTION (exceção interna):");
Console.WriteLine(e.InnerException.Message);
Console.WriteLine(e.InnerException.StackTrace);
}
//Metodo();
Console.WriteLine("Execução finalizada. Tecle enter para sair");
Console.ReadLine();
}
OperacaoFinanceiraException.cs
public class OperacaoFinanceiraException : Exception
{
public OperacaoFinanceiraException()
{
}
public OperacaoFinanceiraException(string mensagem)
: base(mensagem)
{
}
public OperacaoFinanceiraException(string mensagem, Exception excecaoInterna)
: base(mensagem, excecaoInterna)
{
}
}
SaldoInsuficienteException.cs
public class SaldoInsuficienteException : OperacaoFinanceiraException
{
public double Saldo { get; }
public double ValorSaque { get; }
public SaldoInsuficienteException()
{
}
public SaldoInsuficienteException(double saldo, double valorSaque)
: this("Tentativa de saque do valor de " + valorSaque + " em uma conta com saldo de " + saldo)
{
Saldo = saldo;
ValorSaque = valorSaque;
}
public SaldoInsuficienteException(string mensagem, Exception excecaoInterna)
: base(mensagem, excecaoInterna)
{
}
public SaldoInsuficienteException(string mensagem)
: base(mensagem)
{
}
}