Пример #1
0
 // 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);
 }
Пример #2
0
        static void Main(string[] args)
        {
            // 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);
            }
        }