GoConqr has a new look! Let us know what you think.

Flashcards

Throwing exceptions

Thiago Russo C# 70-483 Portuguese 15 cards

Throwing exceptions

Cards in this deck (15)

  1. 1Throwing exceptions exemploThrowing exceptions exemplo
  2. 2ao 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.
  3. 3Rethrowing an exception com a 1ª opção: throw s/ identificadorRethrowing an exception com a 1ª opção: throw s/ identificador
  4. 4Rethrowing an exception com a 2ª opção: throw c/ a exc originalredefinir 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.
  5. 5Rethrowing an exception com a 3ª opção: throw c/ nova exceçãoUsando a terceira opção pode ser útil quando você quiser levantar outra exceção para o chamador de seu código.
  6. 6MessageQueueExceptionDigamos 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.
  7. 7Nunca engula exception * dica de exameCertifique-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.
  8. 8exemplo de: A exceção original é preservada, incluindo o rastreamento de pilha, e uma nova exceção com informações extra é adicionadoexemplo de: A exceção original é preservada, incluindo o rastreamento de pilha, e uma nova exceção com informações extra é adicionado
  9. 9ExceptionDispatchInfo.ThrowNova 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
  10. 10ExceptDispatchInfo exemploExceptDispatchInfo exemplo
  11. 11ExceptionDispatchInfo e Threads conceito e exemplo de onde o .Net framework usa issoEste 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.
  12. 12Qdo 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.
  13. 13Como é 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.
  14. 14Algumas 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
  15. 15exceções populares do .NET Framework que você pode usar (listar 9)Exception
    ArgumentException
    ArgumentNullException
    ArgumentOutOfRangeException
    FormatException
    InvalidOperationException
    NotImplementedException
    NotSupportedException
    ObjectDisposedException

Information

Description
70-483 C# (Exame 70-483) Flashcards on Throwing exceptions, created by Thiago Russo on 23/04/2016.
Created by
Thiago Russo
Views
5
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?