Throwing exceptions

Description

70-483 C# (Exame 70-483) Flashcards on Throwing exceptions, created by Thiago Russo on 23/04/2016.
Thiago Russo
Flashcards by Thiago Russo, updated more than 1 year ago
Thiago Russo
Created by Thiago Russo almost 8 years ago
3
0

Resource summary

Question Answer
Throwing exceptions exemplo
ao relançar exceptions, devemos reutilizar os obj de exceção? quais são as maneiras de relançar uma exception? Vc ñ deve tentar reutilizar objetos de exceção. Cada vez que lançar uma exceção, deve criar um novo obj, principalmente qdo se trabalha em um ambiente multithread, o rastreamento de pilha de sua exceção pode ser alterado por outra thread. Qdo capturar uma exceção, vc pode optar por relançar a exceção. Vc tem três maneiras de fazer isso: ■ palavra-chave throw s/ identificador. ■ palavra-chave throw c/ a exc original. ■ palavra-chave throw c/ nova exceção. A 1ª opção relança a exceção s/ modificar a pilha de chamadas e deve ser usada qdo vc ñ quer quaisquer modificações p/a exceção.
Rethrowing an exception com a 1ª opção: throw s/ identificador
Rethrowing an exception com a 2ª opção: throw c/ a exc original redefinir a pilha de chamadas para o local atual no código. Então você não pode ver de onde a exceção veio originalmente, e é mais difícil para depurar o erro.
Rethrowing an exception com a 3ª opção: throw c/ nova exceção Usando a terceira opção pode ser útil quando você quiser levantar outra exceção para o chamador de seu código.
MessageQueueException Digamos q vc está trabalhando em um aplicativo de pedidos. Qdo um user faz um pedido, vc imediatamente coloca o pedido em uma fila de mensagens para q outro aplicativo possa processá-lo. Qdo acontece um erro interno na fila de mensagens, uma exceção do tipo MessageQueueException é levantada. Para users do seu aplicativo de pedidos, esta exceção ñ fará qualquer sentido. Em vez disso, lance outra exceção, algo como um uma exceção customizada: OrderProcessingException e definir o InnerException para a exceção original.
Nunca engula exception * dica de exame Certifique-se de q vc ñ engula quaisquer detalhes de exceção quando relançar uma exceção. Lance uma nova exceção q aponta p/ a original qdo vc quiser adicionar informações extras; caso contrário, use a palavra-chave throw sem um identificador para preservar os detalhes da exceção originais.
exemplo de: A exceção original é preservada, incluindo o rastreamento de pilha, e uma nova exceção com informações extra é adicionado
ExceptionDispatchInfo.Throw Nova opção do C#5 que pode ser encontrado no namespace System.Runtime.ExceptionServices. Este método pode ser usado para lançar uma exceção e preservar o rastreamento de pilha inicial. Você pode usar esse método mesmo fora de um bloco catch
ExceptDispatchInfo exemplo
ExceptionDispatchInfo e Threads conceito e exemplo de onde o .Net framework usa isso Este recurso pode ser usado qdo vc quer capturar uma exceção em uma thread e jogá-lo em outra thread. Usando a classe ExceptionDispatchInfo, vc pode mover os dados de exceção entre threads e lançar. O .NET Framework usa isso ao lidar c/ o os recursos async / await. Uma exceção que é lançada em uma thread async será capturada e relançada na thread de execução.
Qdo lançar Exceptions? Vc ñ deve lançar exceções qdo se lida c/ situações esperadas. Vc sabe que qdo os usuários começarem a inserir informações em seu app, eles vão cometer erros. Talvez eles insiram um nº no formato errado ou se esqueçam de inserir um campo obrigatório. Lançar uma exceção para estes tipos de situações esperadas não é recomendado. Manipulação de exceção altera o fluxo normal esperado do seu programa. Isso torna mais difícil de ler e manter o código que utiliza exceções, especialmente quando eles são usados em situações normais.
Como é o desempenho de Exceptions? Usando exceções tb incorre em uma queda de performance pq o runtime tem que pesquisar todos os blocos catch exterior até encontrar um bloco correspondente, e qdo isso não acontece, tem que procurar se um depurador está anexado, é preciso um pouco mais de tempo para lidar com isso.
Algumas exceções são lançadas apenas pelo runtime. Você não deve usar essas exceções no seu próprio código (listar 9) ArithmeticException ArrayTypeMismatchException DivideByZeroException IndexOutOfRangeException NullReferenceException OutOfMemoryException OverflowException StackOverflowException TypeInitializationException
exceções populares do .NET Framework que você pode usar (listar 9) Exception ArgumentException ArgumentNullException ArgumentOutOfRangeException FormatException InvalidOperationException NotImplementedException NotSupportedException ObjectDisposedException
Show full summary Hide full summary

Similar

Porova teórica C# mod l
Cursos Professor Jonatã
Linguagem C#
Alex Araujo Furado
Prova teorica C# mo ll
Cursos Professor Jonatã
Entity framework - code first
José Fernandes
Flashcard Módulo 1 - XAMARIN LATINO AMERICA
Marcone Barbosa
Entity framework
José Fernandes
C# and ASP.NET
Kalebi Fiorentini
Linguagens de programação
Rodrigo Barbosa7452
Conceitos do ASP.NET CORE (Incompleto)
José Fernandes Rezende Neto
Dates and times .NET
Felipe Couto Viola
Fluxo Game UC 8
Lucas Coluzzo