Created by Thiago Russo
over 8 years ago
|
||
Question | Answer |
O que são exceções? | Qdo vc faz suas aplicações, às vezes ocorrem erros. Talvez vc queira escrever um arquivo no disco e o disco está cheio.ou tentar conectar em um BD mas o servidor ñ está disponível ou outra condição inesperada existe. Em vez de trabalhar com códigos de erro, o .NET Framework usa exceções para sinalizar erros. VC tb pode usar essas exceções para sinalizar erros que acontecem em seus próprios aplicativos e você pode até mesmo criar tipos de exceção personalizados para sinalizar erros específicos. |
O que é uma Exception no .Net? | Uma exceção é um objeto, que contém dados sobre o erro que aconteceu. Ele ñ só tem uma mensagem amigável para o usuário, mas tb contém o local em q o erro aconteceu e pode até armazenar dados adicionais, como um endereço p/ uma página que oferece alguma ajuda. |
Exemplo de exception | |
Handling exception |
Image:
Try Catch (image/png)
|
Catching Diferent Exception Types |
Image:
Varios Catch (image/png)
|
pode ter catch vazio? Sem uma Exception? | Em C#1, vc tb podia usar um bloco catch sem um tipo de Exception. Isto poderia ser usado p/ capturar exceções q foram lançadas de outras linguagens como C++ q não herdam de System.Exception (em C ++ você pode lançar exceções de qualquer tipo). Hoje em dia, cada exceção que não herda de System.Exception é empacotada automaticamente em um System.Runtime.CompilerServices.RuntimeWrappedException. Dado q esta exceção herda de System.Exception, ñ há necessidade p/ bloco catch vazio mais. |
bloco finally | É importante certificar-se de q a app está no estado correto ao final do bloco catch. Pode ser preciso reverter as alterações que o bloco try realizou antes da exceção ser lançada. O bloco finally será executado se uma exceção acontece ou não |
exemplo de bloco finally |
Image:
Finally (image/png)
|
e se não quisermos passar pelo finally e ao invés disso, quisermos encerrar a app? | Environment.FailFast: pode ter uma situação em que encerrar o aplicativo é mais seguro do que executar blocos finally. Este método tem duas sobrecargas diferentes, um que recebe uma string e um outro que recebe uma exceção. Quando este método é chamado, a mensagem (e, opcionalmente, a exceção) são gravados no log de eventos do aplicativo do Windows, e o aplicativo é encerrado |
exemplo de Environment.FailFast | |
Inspect Exception exemplo | |
Inspect Exception detalhe das variáveis | |
Cuidado com o código do bloco finally | É importante certificar-se de que o seu bloco finally não causa quaisquer exceções. Qdoisso acontece, o controle imediatamente deixa o bloco finally e se move para o próximo bloco try externo, se houver. A exceção original é perdida e você não pode acessá-lo mais. |
qdo usar try..catch? boas práticas | Vc só deve capturar uma exceção qdo pode resolver o problema ou qdo quiser registrar o erro. É importante evitar blocos catch gerais nas camadas mais baixas da sua aplicação. Vc pode acidentalmente engolir uma exceção importante, mesmo sem saber que isso aconteceu. Logging tb deve ser feito em algum lugar mais acima na sua aplicação. Assim, vv pode evitar erros de registro duplicados em várias camadas em sua aplicação. |
Want to create your own Flashcards for free with GoConqr? Learn more.