Classe e propriedades da exceçãoException class and properties

A classe Exception é a classe base da qual as exceções herdam.The Exception class is the base class from which exceptions inherit. Por exemplo, a hierarquia de classe InvalidCastException é como se segue:For example, the InvalidCastException class hierarchy is as follows:

Object
  Exception
    SystemException
      InvalidCastException

A classe Exception tem as propriedades a seguir, que ajudam a facilitar o entendimento de uma exceção.The Exception class has the following properties that help make understanding an exception easier.

Nome da PropriedadeProperty Name DescriçãoDescription
Data Um IDictionary que contém dados arbitrários em pares chave-valor.An IDictionary that holds arbitrary data in key-value pairs.
HelpLink Pode conter uma URL (ou URN) para um arquivo de ajuda que fornece informações abrangentes sobre a causa de uma exceção.Can hold a URL (or URN) to a help file that provides extensive information about the cause of an exception.
InnerException Essa propriedade pode ser usada para criar e manter uma série de exceções durante o tratamento de exceção.This property can be used to create and preserve a series of exceptions during exception handling. Você pode usá-lo para criar uma nova exceção contendo exceções previamente capturadas.You can use it to create a new exception that contains previously caught exceptions. A exceção original pode ser capturada pela segunda exceção na propriedade InnerException, permitindo que o código que trata da segunda exceção examine as informações adicionais.The original exception can be captured by the second exception in the InnerException property, allowing code that handles the second exception to examine the additional information. Por exemplo, suponha que você tem um método que recebe um argumento que está formatado de modo inadequado.For example, suppose you have a method that receives an argument that's improperly formatted. O código tenta ler o argumento, mas uma exceção é gerada.The code tries to read the argument, but an exception is thrown. O método captura a exceção e gera um FormatException.The method catches the exception and throws a FormatException. Para melhorar a capacidade do chamador para determinar o motivo pelo qual que 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.To improve the caller's ability to determine the reason an exception is thrown, it is sometimes desirable for a method to catch an exception thrown by a helper routine and then throw an exception more indicative of the error that has occurred. Uma exceção mais nova e mais significativa pode ser criada, na qual a referência à exceção interna pode ser definida para a exceção original.A new and more meaningful exception can be created, where the inner exception reference can be set to the original exception. Essa exceção mais significativa pode, em seguida, ser gerada para o chamador.This more meaningful exception can then be thrown to the caller. Observe que com essa funcionalidade você pode criar uma série de exceções vinculadas que termina com a primeira exceção gerada.Note that with this functionality, you can create a series of linked exceptions that ends with the exception that was thrown first.
Message Fornece detalhes sobre a causa de uma exceção.Provides details about the cause of an exception.
Source Obtém ou define o nome do aplicativo ou objeto que causa o erro.Gets or sets the name of the application or the object that causes the error.
StackTrace Contém um rastreamento de pilha que pode ser usado para determinar onde um erro ocorreu.Contains a stack trace that can be used to determine where an error occurred. O rastreamento de pilha inclui o nome do arquivo de origem e o número de linha de programa se informações de depuração estiverem disponíveis.The stack trace includes the source file name and program line number if debugging information is available.

A maioria das classes que herdam de Exception não implementa membros adicionais nem fornece funcionalidade adicional; apenas herdam de Exception.Most of the classes that inherit from Exception do not implement additional members or provide additional functionality; they simply inherit from 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.Therefore, the most important information for an exception can be found in the hierarchy of exception classes, the exception name, and the information contained in the exception.

É recomendável gerar e capturar apenas objetos que derivam de Exception, mas é possível gerar como uma exceção qualquer objeto que derive da classe Object.We recommend that you throw and catch only objects that derive from Exception, but you can throw any object that derives from the Object class as an exception. Observe que nem todas as linguagens dão suporte à geração e captura de objetos que não derivam de Exception.Note that not all languages support throwing and catching objects that do not derive from Exception.

Veja tambémSee also