1
resposta

C#4 aula 2, primeiro exercício com resposta errada????

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.

1 resposta

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!