Classe de exceção e propriedades
A Exception classe é a classe base da qual as exceções herdam. Por exemplo, a hierarquia de classes é a InvalidCastException seguinte:
Object
Exception
SystemException
InvalidCastException
A Exception classe tem as seguintes propriedades que ajudam a facilitar a compreensão de uma exceção.
Nome de Propriedade | Description |
---|---|
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 extensas 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á-lo 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, permitindo que o InnerException código que manipula a segunda exceção examine as informações adicionais. Por exemplo, suponha que você tenha um método que recebe um argumento formatado incorretamente. O código tenta ler o argumento, mas uma exceção é lançada. O método captura a exceção e lança um FormatExceptionarquivo . Para melhorar a capacidade do chamador de determinar o motivo pelo qual uma exceção é lançada, às vezes é desejável que um método capture uma exceção lançada por uma rotina auxiliar e, em seguida, lance uma exceção mais indicativa do erro que ocorreu. Uma exceção nova e mais significativa pode ser criada, onde a referência de exceção interna pode ser definida como a exceção original. Esta exceção mais significativa pode então 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 primeiro. |
Message | Fornece detalhes sobre a causa de uma exceção. |
Source | Obtém ou define o nome do aplicativo ou o objeto que causa o erro. |
StackTrace | Contém um rastreamento de pilha que pode ser usado para determinar onde ocorreu um erro. O rastreamento de pilha inclui o nome do arquivo de origem e o número da linha do programa se as informações de depuração estiverem disponíveis. |
A maioria das classes que herdam de Exception não implementam membros adicionais ou fornecem funcionalidade adicional, eles 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ê lance e capture apenas objetos que derivam de Exception, mas você pode lançar qualquer objeto que derive da Object classe como uma exceção. Observe que nem todos os idiomas suportam lançar e capturar objetos que não derivam do Exception.