Compartilhar via


Classe e propriedades de exceção

A Exception classe é a classe base da qual as exceções herdam. Por exemplo, a hierarquia de classe é a InvalidCastException seguinte:

Object
  Exception
    SystemException
      InvalidCastException

A Exception classe tem as propriedades a seguir que ajudam a facilitar a compreensão de uma exceção.

Nome da propriedade Descrição
Data Um IDictionary que contém dados arbitrários em pares chave-valor.
HelpLink Pode conter uma URL (ou URN) para um arquivo de ajuda que fornece informações abrangentes sobre a causa de uma exceção.
InnerException Essa propriedade pode ser usada para criar e preservar uma série de exceções durante o tratamento de exceções. Você pode usá-la para criar uma nova exceção que contenha exceções capturadas anteriormente. A exceção original pode ser capturada pela segunda exceção na propriedade InnerException, permitindo que o código que lida com a segunda exceção examine as informações adicionais. Por exemplo, suponha que você tenha um método que receba um argumento formatado incorretamente. O código tenta ler o argumento, mas uma exceção é gerada. O método captura a exceção e lança um FormatException. Para melhorar a capacidade do chamador de determinar o motivo pelo qual uma exceção é gerada, às vezes é desejável que um método capture uma exceção gerada por uma rotina auxiliar e, em seguida, gere uma exceção mais indicativa do erro que ocorreu. Uma exceção nova e mais significativa pode ser criada, em que a referência de exceção interna pode ser definida como a exceção original. Essa exceção mais significativa pode, em seguida, ser gerada para o chamador. Observe que, com essa funcionalidade, você pode criar uma série de exceções vinculadas que terminam com a exceção que foi lançada primeiro.
Message Fornece detalhes sobre a causa de uma exceção.
Source Obtém ou define o nome do aplicativo ou do objeto que causa o erro.
StackTrace Contém um rastreamento de pilha que pode ser usado para determinar onde um erro ocorreu. O stack trace inclui o nome do arquivo de origem e o número da linha do programa se as informações de debug estiverem disponíveis.

A maioria das classes que herdam de Exception não implementam membros adicionais ou fornecem funcionalidade adicional; elas simplesmente herdam de Exception. Portanto, as informações mais importantes para uma exceção podem ser encontradas na hierarquia de classes de exceção, no nome da exceção e nas informações contidas na exceção.

Recomendamos que você arremesse e capture somente objetos que derivam de Exception, mas você pode arremessar qualquer objeto que deriva da classe Object como uma exceção. Observe que nem todas as linguagens dão suporte ao lançamento e captura de objetos que não derivam de Exception.

Consulte também