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á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