猿教程 Logo

C# 创建自定义异常

阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效:去购买

我们在前面的章节中看到了内置的异常类。 但是,您经常喜欢在违反应用程序的业务规则时引发异常。 因此,为此,您可以通过派生Exception或ApplicationException类创建自定义异常类。

.Net框架包含自.Net v1.0以来的ApplicationException类。 它被设计为用作自定义异常类的基类。 但是,Microsoft现在建议使用Exception类来创建自定义异常类。

例如,在学校应用程序中创建InvalidStudentNameException类,它不允许任何学生的名称中包含任何特殊字符或数字值。

相关实例:

class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
}

[Serializable]
class InvalidStudentNameException : Exception
{
    public InvalidStudentNameException()
    {

    }

    public InvalidStudentNameException(string name)
        : base(String.Format("Invalid Student Name: {0}", name))
    {

    }
  
}

现在,当名称包含特殊字符或数字时,您可以在程序中引发InvalidStudentNameException。 使用throw关键字引发异常。

相关实例:

class Program
{
    static void Main(string[] args)
    {
        Student newStudent = null;
          
        try
        {               
            newStudent = new Student();
            newStudent.StudentName = "James007";
            
            ValidateStudent(newStudent);
        }
        catch(InvalidStudentNameException ex)
        {
            Console.WriteLine(ex.Message );
        }
          

        Console.ReadKey();
    }

    private static void ValidateStudent(Student std)
    {
        Regex regex = new Regex("^[a-zA-Z]+$");

        if (regex.IsMatch(std.StudentName))
             throw new InvalidStudentNameException(std.StudentName);
            
    }
}

运行结果:

Invalid Student Name: James000

因此,您可以创建自定义异常类以区别于系统异常。

重点
  1. 异常是C#中任何类型的异常类的基类。

  2. 派生Exception类来创建自己的自定义异常类。

阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效: 去购买


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/CSharp/Csharp-create-customer-exception.html