打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# 自定义异常处理实例

C#异常处理-——————自定义异常

程序中可能出错的情形很多,如果系统提供地异常类不能够与程序中的异常相匹配,就需要程序员自定义异常类。自定义异常类的语法如下:

class 自定义异常名:基类异常名
{
//语句块
}

自定义异常时应遵循的编码如下:
将异常类命名为以单词“Exception”结尾,如InputException,MessageException。

自定义异常类的代码如下:
ApplicationException //定义异常类派生自基类
public class EmailException:Application
{
public EmaiException(stringmsg):base(msg)//自定义异常类的构造函数,继承基类异常信息。
{

}
}

自定义异常时,一定要注意出现异常时的提示信息,即异常类的Message属性,一般使用构造函数继承来自基类的Message属性,具体写法如上所示。

首先我们建立自己的异常类EmailException,它要继承自ApplicationException类(这是一个在发生非致命的应用程序错误时抛出的通用异常,它又继承于更为通用的Exception类),将其用作为应用程序定义的任何自定义异常的基类。通过这个基类,我们就可以编写一个通用的catch代码块,捕获应用程序定义的任何自定义异常类型。

下面看一个自定义异常类的使用实例

using System;
using System.Collections.Generic;
using System.Text;


namespace ConsoleApplication1
{
    usingSystem;
    public classEmailException:ApplicationException
    {
       public EmailException(string msg) : base(msg) { }
    }

    classProgram
    {
       static void Main()
       {
           Console.WriteLine("请输入Email地址");
           string email = Console.ReadLine();
           string[] substrings = email.Split(
'@');
           if (substrings.Length != 2)
           {
               throw new EmailException("email地址错误");
           }
           else
           {
               Console.WriteLine("输入正确");
           }
           Console.ReadLine();
       }
    }


}

此段代码运行要求输入email地址,如果输入正确,执行else之后的语句,输出“输入正确”的语句;如果输入错误,抛出自定义异常EmailException。

由于在代码中只是直接抛出异常,没有处理异常的语句块。所以程序中断执行,抛出异常。现在我们改写代码,增加异常捕获语句。

using System;
using System.Collections.Generic;
using System.Text;


namespace ConsoleApplication1
{
    public classEmailException : ApplicationException
    {
       public EmailException(string msg) : base(msg) { }
    }

    classProgram
    {
       static void Main()
       {
           Console.WriteLine("请输入Email地址");
           string email = Console.ReadLine();
           string[] substrings = email.Split(
'@');
           try
           {
               if (substrings.Length != 2)
               {
                   throw new EmailException("email地址错误");
               }
               else
               {
                   Console.WriteLine("输入正确");
               }
           }
           catch (EmailException ex)
           {
               Console.WriteLine(ex.Message);
           }
           Console.ReadLine();
       }
    }

}

将正常执行的代码放在try块中,如果格式错误,用throw手动抛出异常,在后面添加catch语句捕获异常,进行处理,输出错误提示。调试此程序发现,即使用email格式输入错误,也不会中断程序运行,而是直接输出错误提示。通过对比这两段代码的结果,可以发现增加异常处理的好处。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#事件的简单认识1
实现一个数的N次方
C# 异常处理 | 菜鸟教程
C# 自定义格式化字符串Console.WriteLine,Console....
C#基础概念二十五问
面向对象的编程基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服