Compartilhar via


Criando exceções personalizadas

As diretrizes a seguir ajudam a garantir que suas exceções personalizadas foram criadas corretamente.

Evite hierarquias de exceção detalhada.

Para obter mais informações, consulte Tipos e Namespaces.

Deriva exceções de sistema.exceção ou uma das outras exceções base comuns.

Observe que Captura e inclusão de tipos de exceção padrão tem uma diretriz que afirma que você não deve derivar exceções personalizadas de ApplicationException.

participante nomes de classe de exceção com o sufixo de exceção.

Convenções de nomenclatura consistentes ajudam a diminuir a curva de aprendizado de novas bibliotecas.

Fazer exceções serializável.Uma exceção deve ser serializável para funcionar corretamente entre os limites de domínio e comunicação remota do aplicativo.

Para obter informações sobre como tornar um tipo serializável, consulte Série.

Fornecem (pelo menos) os construtores seguintes comuns em todas as exceções.Certifique-se de que os nomes e tipos dos parâmetros são os mesmos aqueles usada no exemplo de código seguinte.

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.
   }
}

Relate informações de sensíveis à segurança por meio de uma substituir de sistema.objeto.ToString somente após solicitando uma permissão apropriada.Se a demanda de permissão falhar, retorne uma seqüência de caracteres que não inclui informações sensíveis à segurança.

Armazenam informações de sensíveis à segurança úteis no estado de exceção particular.Certifique-se de que apenas 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 da cadeia de caracteres da mensagem) relevantes para a exceção.

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Escolhendo o tipo correto de exceção para lançar

Outros recursos

Diretrizes de Design para desenvolvimento bibliotecas de classe

Diretrizes de design para exceções