static void Main() { // Criação das contas bancárias ContaBancaria c1 = new ContaBancaria(); ContaBancaria c2 = new ContaBancaria(); // Depósito de 100 em c1. OK try { c1.Depositar(100); Console.WriteLine("Depósito de 100 feito com sucesso em c1"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } // Depósito de -10 em c1. Falha por causa do valor negativo. try { c1.Depositar(-10); Console.WriteLine("Depósito de -10 feito com sucesso em c1"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } // Saque de 30 em c1. OK try { c1.Sacar(30); Console.WriteLine("Saque de 30 feito com sucesso em c1"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } catch (SaldoInsuficienteException e) { Console.WriteLine("Erro: " + e.Message + ". Saldo disponível: " + e.SaldoDisponivel); } // Saque de 90 em c1. Falha porque o saldo é insuficiente try { c1.Sacar(90); Console.WriteLine("Saque de 90 feito com sucesso em c1"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } catch (SaldoInsuficienteException e) { Console.WriteLine("Erro: " + e.Message + ". Saldo disponível: " + e.SaldoDisponivel); } // Saque de -5 em c1. Falha por causa do valor negativo try { c1.Sacar(-5); Console.WriteLine("Saque de -5 feito com sucesso em c1"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } catch (SaldoInsuficienteException e) { Console.WriteLine("Erro: " + e.Message + ". Saldo disponível: " + e.SaldoDisponivel); } // Transferência de 50 de c1 para c2. OK try { c1.Transferir(50, c2); Console.WriteLine("Transferência de 50 de c1 para c2 feita com sucesso"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } catch (SaldoInsuficienteException e) { Console.WriteLine("Erro: " + e.Message + ". Saldo disponível: " + e.SaldoDisponivel); } // Transferência de 50 de c1 para c2. Falha porque o saldo é insuficiente try { c1.Transferir(50, c2); Console.WriteLine("Transferência de 50 de c1 para c2 feita com sucesso"); } catch (ValorInvalidoException e) { Console.WriteLine("Erro: " + e.Message + ". Valor inválido: " + e.ValorInvalido); } catch (SaldoInsuficienteException e) { Console.WriteLine("Erro: " + e.Message + ". Saldo disponível: " + e.SaldoDisponivel); } }
// Transfere um valor desta conta para outra // Este método pode lançar SaldoSuficienteException e ValorInvalidoException porque os métodos Sacar() e // Depositar(), chamados por ele, podem lançar estas exceções public void Transferir(double valor, ContaBancaria conta) { Sacar(valor); conta.Depositar(valor); }