예제 #1
0
파일: Program.cs 프로젝트: jefferosa/Alura
        private static void TestaInner()
        {
            try
            {
                ContaCorrente conta  = new ContaCorrente(50, 564654);
                ContaCorrente conta2 = new ContaCorrente(458, 457715);

                conta2.Transferir(10000, conta);
                conta.Depositar(100);
                Console.WriteLine(conta.Saldo);
                conta.Sacar(500);
            }
            catch (ArgumentException ex)
            {
                if (ex.ParamName == "numero")
                {
                }
                Console.WriteLine("Argumento com problema: " + ex.ParamName);
                Console.WriteLine("Ocorreu um erro do tipo ArgumentException");
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
            catch (SaldoInsuficienteException ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Exceção do tipo saldo insuficiente exception");
            }
            catch (OperacaoFinanceiraException ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }

            Metodo();

            //ContaCorrente conta = new ContaCorrente(546, 754874);

            //Console.WriteLine(ContaCorrente.TaxaOperacao);
        }
예제 #2
0
        private static void OperacaoFinanceira()
        {
            try
            {
                ContaCorrente conta  = new ContaCorrente(45545, 5050);
                ContaCorrente conta2 = new ContaCorrente(45545, 5050);


                //conta.Sacar(10000);
                conta2.Transferir(1000, conta);
            }
            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);
            }
        }
예제 #3
0
        private static void TestaInnerException()
        {
            try
            {
                ContaCorrente conta  = new ContaCorrente(456, 456987);
                ContaCorrente conta2 = new ContaCorrente(123, 123987);

                conta.Transferir(10000, conta2);

                conta.Depositar(50);
                Console.WriteLine("Saldo: R$" + conta.Saldo);
                conta.Sacar(500);
                Console.WriteLine("Saldo após saque: R$" + conta.Saldo);
            }
            catch (OperacaoFinanceiraException e)
            {
                Console.WriteLine("Erro: " + e.Message);
                Console.WriteLine("\n**********" +
                                  "\nTrace: \n" + e.StackTrace);

                Console.WriteLine("\n*********** INNER EXCEPTION **********");
                Console.WriteLine("Erro: " + e.InnerException.Message);
                Console.WriteLine("\n**********" +
                                  "\nTrace: \n" + e.InnerException.StackTrace);
            }
            catch (Exception e)
            {
                Console.WriteLine("Erro: " + e.Message);
                Console.WriteLine("\n**********" +
                                  "\nTrace: \n" + e.StackTrace);

                Console.WriteLine("\n*********** INNER EXCEPTION **********");
                Console.WriteLine("Erro: " + e.InnerException.Message);
                Console.WriteLine("\n**********" +
                                  "\nTrace: \n" + e.InnerException.StackTrace);
            }
        }
예제 #4
0
        private static void TestaInnerException()
        {
            try
            {
                ContaCorrente conta = new ContaCorrente(432, 1123);
                conta.Depositar(50);
                Console.WriteLine(conta.Saldo);
                conta.Sacar(50);

                ContaCorrente conta2 = new ContaCorrente(421, 134);
                conta2.Transferir(1000, conta);
                conta.Sacar(10000);
            }

            catch (SaldoInsuficienteException e)
            {
                Console.WriteLine(e.Saldo);
                Console.WriteLine(e.ValorSaque);

                Console.WriteLine(e.StackTrace);

                Console.WriteLine(e.Message);
                Console.WriteLine(" catch (SaldoInsuficienteException )");
            }
            catch (ArgumentException e)
            {
                if (e.ParamName == "agencia")
                {
                    Console.WriteLine("Testando ParamName nas exceções");
                }
                Console.WriteLine("Ocorreu uma exceção do tipo ArgumentException");
                Console.WriteLine(e.Message);
            }

            catch (OperaçãoFinanceiraException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);

                // Console.WriteLine("\nInformações do Inner Exception: \n");
                //  Console.WriteLine(e.InnerException.Message);
                //  Console.WriteLine(e.InnerException.StackTrace);
            }



            try
            {
                Metodo();
            }
            catch (DivideByZeroException e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine("Aconteceu um erro - Impossivel efetuar divisão por ZERO!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
            Console.ReadLine();
        }
예제 #5
0
        public static void AulaInnerException()
        {
            try
            {
                ContaCorrente conta2        = new ContaCorrente(10, 20);
                ContaCorrente contacorrente = new ContaCorrente(100, 10);

                contacorrente.Depositar(500);
                contacorrente.Sacar(50);
                conta2.Transferir(10000, contacorrente);

                Console.WriteLine(contacorrente.Saldo);
            }
            catch (SaldoInsuficienteException ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Exceção do tipo SaldoInsuficienteExcepetion!");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine();

                Console.WriteLine("Informações da InnerException");
                Console.WriteLine(ex.InnerException.Message);
                Console.WriteLine(ex.InnerException.StackTrace);
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine("Erro no argumento: " + ex.ParamName);
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
            catch (OperacaoFinanceiraException ex)
            {
                Console.WriteLine("-= OperaçãoFinanceiraExcepetion =-");
                Console.WriteLine(ex.Message);
                Console.WriteLine("=================================");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine("=================================");
                Console.WriteLine("-= Informações da InnerException =-");
                Console.WriteLine(ex.InnerException.Message);
                Console.WriteLine("=================================");
                Console.WriteLine(ex.InnerException.StackTrace);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);

                Console.WriteLine();
                Console.WriteLine("Informações da InnerException.");
                Console.WriteLine(ex.InnerException.Message);
                Console.WriteLine(ex.InnerException.StackTrace);
            }

            try
            {
                Metodo();
            }
            catch (DivideByZeroException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Não é possível dividir um número por 0");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                Console.WriteLine("Exeção tratada!");
            }

            ContaCorrente conta = new ContaCorrente(7480, 874150);

            try
            {
                Console.WriteLine(ContaCorrente.TaxaOperacao);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }
예제 #6
0
        static void Main()
        {
            Cliente gabriela = new Cliente();

            gabriela.Nome      = "Gabriela";
            gabriela.Profissao = "Desenvolvedora C#";
            gabriela.Cpf       = "434.562.878-20";

            Cliente bruno = new Cliente();

            bruno.Nome      = "Bruno";
            bruno.Profissao = "Desenvolvedor Front-end";
            bruno.Cpf       = "124.592.844-20";

            ContaCorrente contaDaGabriela = new ContaCorrente(863, 15);

            contaDaGabriela.Titular = gabriela;
            contaDaGabriela.Saldo   = 1000;

            ContaCorrente contaDoBruno = new ContaCorrente(863, 16);

            contaDoBruno.Titular = bruno;
            contaDoBruno.Saldo   = 500;


            Console.WriteLine($@"Conta corrente da Gabriela e valores dos atributos:
            Titular: {contaDaGabriela.Titular.Nome}
            Agência: {contaDaGabriela.Agencia}
            Número: {contaDaGabriela.Numero}
            Saldo: {contaDaGabriela.Saldo}
            ");

            Console.WriteLine("*******************************************************************\n\n");

            Console.WriteLine($@"Conta corrente da Gabriela e valores dos atributos:
            Titular: {contaDoBruno.Titular.Nome}
            Agência: {contaDoBruno.Agencia}
            Número: {contaDoBruno.Numero}
            Saldo: {contaDoBruno.Saldo}
            ");

            Console.WriteLine("*******************************************************************\n\n");

            double valorSaque = 50;

            Console.WriteLine("Conta corrente do Bruno com exibição de saldo antes e depois do saque:");
            Console.WriteLine("Saldo anterior: " + contaDoBruno.Saldo);
            bool resultadoSaque = contaDoBruno.Sacar(valorSaque);

            Console.WriteLine("Resultado do saque: " + resultadoSaque);
            Console.WriteLine("Saldo posterior: " + contaDoBruno.Saldo + "\n\n");

            Console.WriteLine("*******************************************************************\n\n");

            double valorDeposito = 250;

            Console.WriteLine("Conta corrente do Bruno com exibição de saldo antes e depois do depósito:");
            Console.WriteLine("Saldo anterior: " + contaDoBruno.Saldo);
            contaDoBruno.Depositar(valorDeposito);
            Console.WriteLine("Valor de depósito: " + valorDeposito);
            Console.WriteLine("Saldo posterior: " + contaDoBruno.Saldo + "\n\n");

            Console.WriteLine("*******************************************************************\n\n");

            double valorTransferencia = 20;

            Console.WriteLine("Saldo inicial da conta da Gabriela: " + contaDaGabriela.Saldo);
            Console.WriteLine("Saldo inicial da conta do Bruno: " + contaDoBruno.Saldo);
            Console.WriteLine("Valor de transferência: " + valorTransferencia);
            bool resultadoTransferencia = contaDoBruno.Transferir(valorTransferencia, contaDaGabriela);

            Console.WriteLine("Resultado transferência: " + resultadoTransferencia);
            Console.WriteLine("Saldo final da conta da Gabriela: " + contaDaGabriela.Saldo);
            Console.WriteLine("Saldo final da conta do Bruno: " + contaDoBruno.Saldo);

            Console.WriteLine("*******************************************************************\n\n");

            Console.WriteLine("Total de contas criadas: " + ContaCorrente.TotalDeContasCriadas);
            Console.ReadLine();
        }
예제 #7
0
        public static void Main(string[] args)
        {
            int opcao;

            ContaCorrente primeiraContaCorrente = new ContaCorrente();
            ContaCorrente segundaContaCorrente  = new ContaCorrente();

            primeiraContaCorrente.Titular = new Cliente();
            segundaContaCorrente.Titular  = new Cliente();

            Console.WriteLine("O que deseja fazer?");
            Console.WriteLine("1 - Depositar");
            Console.WriteLine("2 - Sacar");
            Console.WriteLine("3 - Transferir\n");
            opcao = int.Parse(Console.ReadLine());

            Console.Write("Digite o nome do titular da 1° conta: ");
            primeiraContaCorrente.Titular.Nome = Console.ReadLine();

            Console.Write($"Digite o valor do saldo da conta de {primeiraContaCorrente.Titular.Nome}: ");
            primeiraContaCorrente.Saldo = double.Parse(Console.ReadLine());
            Console.WriteLine();

            switch (opcao)
            {
            case 1:
                Console.Write("Quanto deseja depositar? ");
                double valorDeposito = double.Parse(Console.ReadLine());
                primeiraContaCorrente.Depositar(valorDeposito);
                break;

            case 2:
                Console.Write("Quanto deseja sacar? ");
                double valorSaque = double.Parse(Console.ReadLine());
                primeiraContaCorrente.Sacar(valorSaque);
                break;

            case 3:
                Console.Write("Digite o nome do titular da 2° conta: ");
                segundaContaCorrente.Titular.Nome = Console.ReadLine();

                Console.Write($"Digite o valor do saldo da conta de {segundaContaCorrente.Titular.Nome}: ");
                segundaContaCorrente.Saldo = double.Parse(Console.ReadLine());

                Console.Write("Quanto deseja transferir? ");
                double valorTransferencia = double.Parse(Console.ReadLine());

                Console.WriteLine();

                Console.Write("Confirme seu CPF sem pontos: ");
                segundaContaCorrente.Titular.CPF = Console.ReadLine();

                if (segundaContaCorrente.Titular.CPF.Length == 11 || segundaContaCorrente.Titular.CPF.Length == 14)
                {
                    primeiraContaCorrente.Transferir(valorTransferencia, segundaContaCorrente);
                }

                else
                {
                    Console.WriteLine("CPF inválido. Impossível realizar a transferência!");
                }
                break;
            }
            Console.WriteLine("\nJoaosan \u00a9");
            Console.ReadLine();
        }