Classe Exception e suas Propriedades
A classe Exception é a classe base a partir da qual as exceções herdam. A maioria dos objetos de exceção são instâncias de alguma classe derivada de Exception, mas você pode apresentar qualquer objeto derivado da classe Object como uma exceção. Observe que nem todas as linguagens oferecem suporte ao lançamento e captura de objetos que não derivem de Exception. Em quase todos os casos, é recomendável lançar e capturar apenas objetos Exception.
A classe Exception tem várias propriedades que tornam o entendimento sobre exceção mais fácil. Essas propriedades incluem:
A propriedade StackTrace.
Esta propriedade contém uma rastreamento de pilha que pode ser usado para determinar onde ocorreu um erro. O rastreamento de pilha inclui o nome do arquivo fonte e o número da linha de programa se informações de depuração estiverem disponíveis.
A propriedade InnerException.
Esta propriedade pode ser usada para criar e manter uma série de exceções durante a manipulação de exceções. Você pode usar essa propriedade para criar uma nova exceção que contém exceções previamente capturadas. A exceção original pode ser capturada pela segunda exceção na propriedade InnerException, permitindo que o código que manipula a segunda exceção examine as informações adicionais.
Por exemplo, suponha que você tenha um método que lê um arquivo e formata os dados. O código tenta ler a partir do arquivo, mas um FileException é lançado. O método captura a FileException e lança um BadFormatException. Nesse caso, o FileException pode ser salvo na propriedade InnerException da BadFormatException.
Para melhorar a capacidade do chamador de determinar o motivo pelo qual é lançada uma exceção, às vezes é desejável para um método capturar uma exceção acionada por uma rotina auxiliar e, em seguida, lançar uma exceção mais indicativa do erro que ocorreu. Uma exceção mais nova significativa de exceção pode ser criada, onde a referência à exceção interna pode ser configurada para a exceção original. Essa exceção mais significativa, em seguida, pode ser lançada para o chamador. Observe que com essa funcionalidade, você pode criar uma série de exceções vinculadas que termina com a exceção que foi lançada inicialmente.
A propriedade Message.
Essa propriedade fornece detalhes sobre a causa de uma exceção. O Message está no idioma especificado pela propriedade Thread.CurrentUICulture do segmento que lança a exceção.
A propriedade HelpLink.
Esta propriedade pode conter um URL (ou URN) para um arquivo de ajuda que fornece informações abrangentes sobre a causa de uma exceção.
A propriedade Data.
Esta propriedade é uma IDictionary que pode conter dados arbitrários em pares chave-valor.
A maioria das classes que herdam de Exception não implementar membros adicionais ou fornecem funcionalidade adicional; elas simplesmente herdam de Exceiption. Portanto, as informações mais importantes para uma exceção podem ser encontradas na hierarquia de exceções, no nome da exceção e nas informações contidas na exceção.
Consulte também
Conceitos
Práticas recomendadas para tratamento de exceções
Tratamento e lançamento de exceções