Skip to content

RedONe06/CSharpEntendendoExcecoes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Notebook: Google Docs

Primeiros passos com excessões

  • Como funciona a pilha de chamadas (CallStack) no .NET;
  • Não é correto propagar erros com retorno de métodos não é correto;
  • Podemos usar as exceções do .NET e para tratá-las, basta usar os blocos try/catch;
  • As exceções são representadas por objetos e duas propriedades importantes são a Message e StackTrace.

Tratamento de excessões

  • O bloco try pode acompanhar vários blocos catch;
  • A CLR visita os blocos catch em ordem, de cima para baixo. Por essa razão, os tipos de exceção mais específicos devem estar no começo;
  • A instrução throw;, dentro de um bloco catch, relança uma exceção.

ArgumentException

  • Campos somente leitura com o modificador readonly, que irão nos ajudar a manter a segurança do nosso código evitando que dados que não devem ser modificados, sejam alterados sem necessidade;
  • Propriedades somente leitura, com omissão do setter, impedindo que a informação seja alterada ao longo da aplicação;
  • O operador nameof() produz o nome de uma variável, tipo ou membro como a constante de cadeia de caracteres;
  • A classe de exceção ArgumentException, seus construtores e propriedades.

Criando exceções ricas

  • Convenções de nomeação de exceções utilizando o Exception ao final;
  • Como criar nossas exceções quando for necessário e não tivermos tais opções disponibilizadas pelo próprio CSharp.

StackTrace e InnerException

  • Como a CLR preenche a propriedade StackTrace;
  • A estrutura InnerExceptions nos ajuda a deixar nossas exceções ainda mais claras, facilitando o trabalho da pessoa desenvolvedora;
  • O terceiro construtor que as exceções devem ter: (string mensagem, Exception excecaoInterna), tornando nossa exceção ainda mais rica.

Bloco finally

  • O bloco finally servirá para garantir que um código seja executado depois do blocotry;
  • Não é obrigatório o bloco catch quando temos um finally;
  • O bloco using é usado para garantir a disposição correta de alguns objetos.

About

📘 Curso Alura - C#: Entendendo exceções

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages