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
{
}
此段代码运行要求输入email地址,如果输入正确,执行else之后的语句,输出“输入正确”的语句;如果输入错误,抛出自定义异常EmailException。
由于在代码中只是直接抛出异常,没有处理异常的语句块。所以程序中断执行,抛出异常。现在我们改写代码,增加异常捕获语句。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
}
将正常执行的代码放在try块中,如果格式错误,用throw手动抛出异常,在后面添加catch语句捕获异常,进行处理,输出错误提示。调试此程序发现,即使用email格式输入错误,也不会中断程序运行,而是直接输出错误提示。通过对比这两段代码的结果,可以发现增加异常处理的好处。
联系客服