Aplicativos devem ser capazes de tratar de erros que ocorrem durante a execução de uma maneira consistente. O .NET fornece um modelo para notificar aplicativos sobre erros de maneira uniforme: operações do .NET indicam falhas por meio da geração de exceções.
Exceções
Uma exceção é qualquer condição de erro ou comportamento inesperado encontrado por um programa em execução. Exceções podem ser geradas devido a uma falha em seu código ou no código que você chama (como uma biblioteca compartilhada), recursos do sistema operacional não disponíveis, condições inesperadas encontradas pelo runtime (como código que não pode ser verificado) e assim por diante. Seu aplicativo pode se recuperar de algumas dessas condições, mas não de outras. Embora você possa se recuperar da maioria das exceções de aplicativo, não é possível recuperar-se da maioria das exceções de runtime.
No .NET, uma exceção é um objeto herdado da classe System.Exception. Uma exceção é lançada de uma área do código em que ocorreu um problema. A exceção é passada pilha acima até que o aplicativo trate dela ou o programa seja encerrado.
Métodos de tratamento de exceção vs. tratamento de erro tradicional
Tradicionalmente, o modelo de tratamento de erro da linguagem confiava na forma exclusiva da linguagem de detectar erros e localizar manipuladores para eles ou no mecanismo de tratamento de erro fornecido pelo sistema operacional. A maneira como o .NET implementa o tratamento de exceção oferece as seguintes vantagens:
O lançamento e tratamento de exceção funciona da mesma maneira para linguagens de programação .NET.
Não requer nenhuma sintaxe de linguagem específica para tratamento de exceção, mas permite que cada linguagem defina sua própria sintaxe.
Exceções podem ser geradas pelos limites de processo e até mesmo de computador.
O código de tratamento de exceção pode ser adicionado a um aplicativo para aumentar a confiabilidade do programa.
As exceções oferecem vantagens sobre outros métodos de notificação de erro, como códigos de retorno. Falhas não passam despercebidas porque se uma exceção for lançada e você não tratar dela, o runtime encerra o aplicativo. Valores inválidos não continuam a se propagar através do sistema como resultado do código que não consegue verificar se há um código de retorno de falha.
Exceções comuns
A tabela a seguir lista algumas exceções comuns com exemplos do que pode causá-las.
Este módulo explora o uso de exceções e o processo de tratamento de exceções em aplicativos de console C#. As atividades práticas fornecem experiência com a implementação de padrões de tratamento de exceções para vários cenários de codificação.