Manipulação de exceção

Definição - o que significa Tratamento de exceções?

O tratamento de exceções é um mecanismo no qual uma construção de programação é usada para capturar, interceptar e tratar o erro ocorrido durante a execução do aplicativo de forma consistente. O Common Language Runtime (CLR) do .NET Framework foi projetado para usar um modelo de tratamento de exceção baseado em objetos de exceção e blocos protegidos de código.

Os recursos do mecanismo de tratamento de exceções implementado no CLR são os seguintes:

a) Cada idioma pode ter sua própria especificação para lidar com exceções sem quaisquer restrições

b) As exceções são geradas e tratadas independentemente da linguagem usada e tipo de código (gerenciado ou não gerenciado)

c) Exceções podem ser lançadas além dos limites do processo ou da máquina

Definirtec explica como lidar com exceções

O runtime do .NET lança exceções como objetos derivados da classe System.Exception que contêm detalhes do erro, incluindo mensagem e linha de código onde o erro ocorreu, etc. A construção "try..catch..finally" é usada para tratamento de exceção. Enquanto os blocos "try" (onde exceções são antecipadas) e "catch" (onde as exceções são tratadas) são obrigatórios, o bloco "finally" (onde o código é executado em qualquer caso) é opcional.

Quando comparado ao tratamento de erros implementado usando métodos tradicionais - como o uso de código de retorno como no Modelo de Objeto Componente (COM) e instruções "ir para", como no Visual Basic etc. - os principais benefícios das exceções no .NET são o trapping de todos falhas, eliminação do processo de verificação do valor de retorno e seu uso (se inválido) nas aplicações, uso em cenários onde não há valor de retorno como construtores, aumento da confiabilidade e melhor desempenho.

Embora o Java forneça exceções "verificadas" que ajudam a prevenir a incidência de exceções não tratadas durante a compilação, eles não podem ser usados ​​para erros que são falha irrecuperável. O tratamento de exceções em C ++ difere do .NET por não ter o bloco "finalmente" para limpar recursos e sem qualquer restrição para o tipo de exceção.

Esta definição foi escrita no contexto do .NET