Sdílet prostřednictvím


Postupy: Vytvořit uživatelem definované výjimky

Pokud chcete, aby mohli uživatelé v programu rozlišit některé podmínky chyb, můžete vytvořit vlastní uživatelem definované výjimky. Rozhraní .NET Framework poskytuje hierarchii tříd výjimek nakonec odvozených ze základní třídy Exception. Každá z těchto tříd definuje určitou výjimku, proto je v mnoha případech pouze nutné výjimku zachytit. Můžete také vytvořit vlastní třídy výjimek odvozené z třídy Exception.

Při vytváření vlastních výjimek je dobrým zvykem programování ukončit název třídy uživatel definované výjimky slovem "Exception". Je také dobrým zvykem implementovat tří doporučené obvyklé konstruktory, jak je znázorněno v následujícím příkladu.

PoznámkaPoznámka

V situacích kdy používáte vzdálenou komunikaci musíte zajistit, aby metadata pro uživatelem definované výjimky byly k dispozici na serveru (volaný objekt) a u klienta (objekt proxy či volající).Například kód, který volá metodu v samostatné doméně aplikace, musí být schopen nalézt sestavení obsahující výjimku vyvolanou vzdáleným voláním.Další informace naleznete v tématu Doporučené postupy pro zpracování výjimek.

V následujícím příkladu je nová třída výjimek EmployeeListNotFoundException odvozena z Exception. Jsou definovány tři konstruktory, z nichž každý přebírá různé parametry.

Příklad

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)
    {
    }
};

Viz také

Úkoly

Postupy: Použití bloku Try/Catch pro zachycení výjimek

Postupy: Použít specifické výjimky v bloku Catch

Koncepty

Doporučené postupy pro zpracování výjimek

Další zdroje

Základy zpracování výjimek