Share via


如何:创建用户定义的异常

如果希望用户能以编程方式区分一些错误条件,您可以创建自己的用户定义的异常。 .NET Framework 提供根本上从基类 Exception 派生的异常类的层次结构。 这些类中的每一个都定义一个特定的异常,因此在很多情况下只需捕捉该异常。 您也可以通过从 Exception 类派生来创建自己的异常类。

创建自己的异常时,好的编码做法是以“Exception”这个词作为用户定义的异常类名的结尾。如下面的示例所示实现三个推荐的公共构造函数也是好的做法。

注意注意

当使用远程处理时,对于任何用户定义的异常的元数据,都必须确保其在服务器(被调用方)和客户端(代理对象或调用方)上均可用。例如,在单独的应用程序域中调用方法的代码必须能够找到包含远程调用引发的异常的程序集。有关更多信息,请参见处理异常的最佳做法

在下面的示例中,从 Exception 派生了一个新异常类 EmployeeListNotFoundException。 该类中定义了三个构造函数,每个构造函数使用不同的参数。

示例

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

请参见

任务

如何:使用 Try/Catch 块捕捉异常

如何:在 Catch 块中使用特定异常

概念

处理异常的最佳做法

其他资源

异常处理基础知识