Criação exceções de personalizada
As diretrizes a seguir ajudam a garantir que suas exceções personalizadas são criadas corretamente.
Evite as hierarquias de exceção detalhada.
Para obter mais informações, consulte Tipos e Namespaces.
Derive exceções System. Exception ou uma das outras exceções base comuns.
Observe que Captura e a inclusão de tipos de exceção padrão tem uma diretriz que afirma que você não deve derivar exceções personalizadas a partir de ApplicationException.
Finalize os nomes de classe de exceção com o sufixo de exceção.
As convenções de nomenclatura consistentes ajudam a reduzir a curva de aprendizado de novas bibliotecas.
Criar exceções serializável. Uma exceção deve ser serializável para funcionar corretamente através de limites de domínio e o remoting do aplicativo.
Para obter informações sobre como tornar um tipo serializável, consulte Serialization.
Fornece (pelo menos) os construtores comuns a seguintes em todas as exceções. Verifique se os nomes e tipos dos parâmetros são os mesmos daqueles usados no exemplo de código a seguir.
Public Class NewException
Inherits BaseException
Implements ISerializable
Public Sub New()
MyBase.New()
' Add implementation.
End Sub
Public Sub New(ByVal message As String)
MyBase.New()
' Add implementation.
End Sub
Public Sub New(ByVal message As String, ByVal inner As Exception)
MyBase.New()
' Add implementation.
End Sub
' This constructor is needed for serialization.
Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
MyBase.New()
' Add implementation.
End Sub
End Class
public class NewException : BaseException, ISerializable
{
public NewException()
{
// Add implementation.
}
public NewException(string message)
{
// Add implementation.
}
public NewException(string message, Exception inner)
{
// Add implementation.
}
// This constructor is needed for serialization.
protected NewException(SerializationInfo info, StreamingContext context)
{
// Add implementation.
}
}
public ref class NewException : BaseException, ISerializable
{
public:
NewException()
{
// Add implementation.
}
NewException(String^ message)
{
// Add implementation.
}
NewException(String^ message, Exception^ inner)
{
// Add implementation.
}
protected:
// This constructor is needed for serialization.
NewException(SerializationInfo info, StreamingContext context)
{
// Add implementation.
}
};
Relate informações de sensíveis à segurança por meio de uma substituição de System.Object.ToString somente após exigindo uma permissão apropriada. Se a demanda de permissão falhar, retorne uma seqüência de caracteres que não inclua as informações sensíveis à segurança.
Armazene informações úteis de sensíveis à segurança em estado de exceção particulares. Certifique-se de que somente o código confiável pode obter as informações.
Considere fornecer as propriedades de exceção para acesso programático às informações extras (além de seqüência de mensagem) relevantes para a exceção.
Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.
Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Conceitos
Escolhendo o tipo certo de exceção a ser lançada
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe