Compartilhar via


Como: Criar exceções definida pelo usuário

Se você quiser que os usuários possam distinguir programaticamente entre algumas condições de erro, você pode criar suas próprias exceções definidas pelo usuário. O .NET Framework fornece uma hierarquia de classes de exceção basicamente derivada da classe base Exception. Cada uma dessas classes define uma exceção específica, portanto em muitos casos, você só terá que capturar a exceção. Você também pode criar suas próprias classes de exceção ao derivar da classe Exception.

Ao criar suas próprias exceções, é uma boa prática de codificação finalizar o nome da classe de exceção definida pelo usuário com a palavra "Exception". Também é uma boa prática implementar os três construtores comuns recomendados, como mostrado no exemplo o seguir.

Observação

Em situações onde você estiver usando a arquitetura de comunicação remota, você deve garantir que os metadados de todas as exceções definidas pelo usuário estão disponíveis no servidor (receptor) e para o cliente (o objeto de proxy ou chamador).Por exemplo, o código que chama um método em um domínio de aplicativo separado deve ser capaz de localizar o assembly que contém uma exceção acionada por uma chamada remota.Para obter mais informações, consulte Práticas recomendadas para tratamento de exceções.

No exemplo a seguir, uma nova classe de exceção, EmployeeListNotFoundException, é derivada de Exception. Três construtores estão definidos na classe, cada um levando parâmetros diferentes.

Exemplo

Imports System

Public Class EmployeeListNotFoundException
    Inherits Exception

    Public Sub New()
    End Sub

    Public Sub New(message As String)
        MyBase.New(message)
    End Sub

    Public Sub New(message As String, inner As Exception)
        MyBase.New(message, inner)
    End Sub
End Class
using System;

public class EmployeeListNotFoundException: Exception
{
    public EmployeeListNotFoundException()
    {
    }

    public EmployeeListNotFoundException(string message)
        : base(message)
    {
    }

    public EmployeeListNotFoundException(string message, Exception inner)
        : base(message, inner)
    {
    }
}
using namespace System;

public ref class EmployeeListNotFoundException : Exception
{
public:
    EmployeeListNotFoundException()
    {
    }

    EmployeeListNotFoundException(String^ message)
        : Exception(message)
    {
    }

    EmployeeListNotFoundException(String^ message, Exception^ inner)
        : Exception(message, inner)
    {
    }
};

Consulte também

Tarefas

Como: Usar o bloco Try/Catch para capturar exceções

Como: Usar exceções específicas em um bloco Catch

Conceitos

Práticas recomendadas para tratamento de exceções

Outros recursos

Fundamentos da Manipulação de Exceções