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 a manipulação 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 'New
   
   Public Sub New(message As String)
      MyBase.New(message)
   End Sub 'New
   
   Public Sub New(message As String, inner As Exception)
      MyBase.New(message, inner)
   End Sub 'New
End Class 'EmployeeListNotFoundException
using System;
public class EmployeeListNotFoundException: Exception
{
   public EmployeeListNotFoundException()
      {
      }
   public EmployeeListNotFoundException(string message)
      : base(message)
      {
      }
   public EmployeeListNotFoundException(string message, Exception inner)
      : base(message, inner)
      {
      }
}

Consulte também

Tarefas

Como: Use o bloco try/catch para interceptar 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