public async void Main()
        {
            WriteLine("9. Await Em Blocos Catch E Finally");

            StreamWriter logAplicacao = new StreamWriter("LogAplicacao.txt");

            try
            {
                await logAplicacao.WriteLineAsync("Aplicação está iniciando...");

                Aluno aluno = new Aluno("Marty", "McFly", new DateTime(1968, 6, 12))
                {
                    Endereco = "9303 Lyon Drive Hill Valley CA",
                    Telefone = "555-4385"
                };

                await logAplicacao.WriteLineAsync("Aluno Marty McFly foi criado...");

                WriteLine(aluno.Nome);
                WriteLine(aluno.Sobrenome);

                WriteLine(aluno.NomeCompleto);
                WriteLine("Idade: {0}", aluno.GetIdade());
                WriteLine(aluno.DadosPessoais);

                aluno.AdicionarAvaliacao(new Avaliacao(1, "Geografia", 8));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "Matemática", 7));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "História", 9));
                ImprimirMelhorNota(aluno);

                Aluno aluno2 = null;
                ImprimirMelhorNota(aluno2);

                Aluno aluno3 = new Aluno("Bart", "Simpson");

                await logAplicacao.WriteLineAsync("Aluno Bart Simpson foi criado...");

                ImprimirMelhorNota(aluno3);

                aluno.PropertyChanged += Aluno_PropertyChanged;

                aluno.Endereco = "Rua Vergueiro, 3185";
                aluno.Telefone = "555-1234";

                Aluno aluno4 = new Aluno("Charlie Brown", "");

                await logAplicacao.WriteLineAsync("Aluno Charlie Brown foi criado...");
            }
            catch (ArgumentException exc) when(exc.Message.Contains("não informado"))
            {
                string msg = $"Parâmetro {exc.ParamName} não foi informado!";

                logAplicacao.WriteLine(msg);
                WriteLine(msg);
            }
            catch (ArgumentException)
            {
                const string msg = "Parâmetro com problema!";
                await logAplicacao.WriteLineAsync(msg);

                WriteLine(msg);
            }
            catch (Exception exc)
            {
                await logAplicacao.WriteLineAsync(exc.ToString());

                Write(exc.ToString());
            }
            finally
            {
                await logAplicacao.WriteLineAsync("Aplicação terminou.");

                logAplicacao.Dispose();
            }
        }
 private static void ImprimirMelhorNota(Aluno aluno)
 {
     WriteLine("Melhor nota: {0}", aluno?.MelhorAvaliacao?.Nota);
 }
Example #3
0
        public async void Main()
        {
            WriteLine("9. Filtros De Exceção");
            StreamWriter logAplicacao = new StreamWriter("LogAplicacao.txt");

            try
            {
                await logAplicacao.WriteLineAsync("Aplicação esta iniciando...");

                Aluno aluno = new Aluno("Marty", "Hill", new DateTime(1999, 12, 06))
                {
                    Endereco = "9303 Lyon Driver Hill Valey Ca", Telefone = "444-45643"
                };


                await logAplicacao.WriteLineAsync("Aluno marty Hill foi criado...");

                WriteLine(aluno.Nome);
                WriteLine(aluno.Sobrenome);
                WriteLine(aluno.NomeCompleto);

                WriteLine("Idade: {0}", aluno.GetIdade());
                WriteLine(aluno.DadosPessoais);

                aluno.AdicionarAvaliacao(new Avaliacao(1, "Geografia", 8.0));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "Historia", 9.0));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "Matemática", 7.0));

                Aluno aluno2 = new Aluno("Bart", "Simpson");

                await logAplicacao.WriteLineAsync("Aluno Bart Simpson foi criado...");

                ImprimirMelhorNota(aluno);
                ImprimirMelhorNota(aluno2);

                aluno.PropertyChanged += Aluno_PropertyChanged;

                aluno.Endereco = "Rua Vergueiro, 3185";
                aluno.Telefone = "555-1234";

                Aluno aluno3 = new Aluno("Charlie", "");
                await logAplicacao.WriteLineAsync("Aluno Charilie Brown foi criado...");
            }
            catch (ArgumentException ex) when(ex.Message.Contains("não informado"))
            {
                string msg = $"Paramêtro { ex.ParamName } não foi informado!";
                await logAplicacao.WriteLineAsync(msg);

                Console.WriteLine(msg);
            }
            catch (ArgumentException ex)
            {
                string msg = "Parâmetro com problema!";
                await logAplicacao.WriteLineAsync(msg);

                Console.WriteLine(msg);
            }
            catch (Exception ex)
            {
                string msg = ex.ToString();
                await logAplicacao.WriteLineAsync(msg);

                Console.WriteLine(msg);
            }
            finally
            {
                await logAplicacao.WriteLineAsync("Aplicação terminou.");

                logAplicacao.Dispose();
            }
        }