A descrição da resposta certa me parece equivocada, gostariam que avaliassem e corrigissem para não gerar duvida. A questão fala do try e catch c# 4: aula 2 as respostas estão trocadas entra a A e a C.
A descrição da resposta certa me parece equivocada, gostariam que avaliassem e corrigissem para não gerar duvida. A questão fala do try e catch c# 4: aula 2 as respostas estão trocadas entra a A e a C.
Olá Diego!
"Exceções do tipo DivideByZeroException nunca serão capturados pelo catch (DivideByZeroException), pois o catch (Exception) captura todos os tipos de exceção e deve ser definido por último."
Essa afirmação está correta. A avaliação de qual catch tem o tipo de exceção que foi gerada sempre é de cima para baixo. Na aula é dito que deve vir primeiro as exceções mais específicas, como DivideByZeroException e por último deve ficar as mais generalistas, como Exception.
A questão C está correta porque qualquer exceção que bater em Exception vai se enquadrar, tornando inútil o próximo catch.
Quanto a questão A, está dizendo que mesmo Exception estando abaixo de NullReferenceException seria a exceção mais geral que seria chamada. Mas se tiver um NullReferenceException esse será capturado pelo primeiro catch.
Os catches são sempre avaliados de cima pra baixo. Será executada a ação do primeiro catch onde se enquadrar a exceção.
Espero ter ajudado!