Notebook:
Google Docs
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.