常用的异常处理有两类try-catch语句和throw语句。
try-catch语句通常用于不可预见的错误出现时的异常处理。
throw语句通常用于只要不满足特定要求时就抛出异常。
下面给大家举个用throw处理Email格式输入不正确的异常示例,Email格式检测对有些朋友来说确实是个问题,Email无非就是一个字符串,所以我们检测Email格式是否正确只需要检查‘@’和‘.’两个字符的位置是否正确
首先我自定义了一个异常类EmailErrorException.
//自定义一个EmailErrorException异常类,从ApplicationException中派生。public class EmailErrorException : ApplicationException{//这些构造函数有兴趣的可以右键转到定义看看public EmailErrorException() { }public EmailErrorException(string message) : base(message) { }public EmailErrorException(string message, System.Exception innerException) : base(message, innerException) { }//重载Message属性public override string Message{get{return "Email格式不正确:"+base.Message;}}}
然后,我们定义一个CheckEmail类来测试我输入的Email是否正确,如果不正确,就抛出我们自定义的EmailErrorException异常
//定义一个CheckEmail类,用来检查输入的Email是否正确,如果不正确,就用throw抛出刚刚自定义的EmailErrorException异常public class CheckEmail{public bool Checkemail(string email){//用Split函数将Email字符串从‘@’处分隔string[] str = email.Split('@');//如果Email不是被‘@’分隔成两段,则抛出异常if (str.Length != 2 || str[0].Length == 0 || str[1].Length == 0){ throw new EmailErrorException("@符号不正确!"); }else{//调用IndexOF函数找到Email第一个“.”出现的位置int index = str[1].IndexOf(".");//如果‘.’位置在第一个或者最后一个字符,则抛出异常if (index <= 0 || index >= str[1].Length - 1){throw new EmailErrorException("'.'符号不正确!");}}return true;}}
最后添加btn_Check事件,进行Email检测
private void btnCheck_Click(object sender, EventArgs e){CheckEmail email = new CheckEmail();try{if (email.Checkemail(txtEmail.Text)) { lblResult.Text = "Email检测成功!"; }}catch (EmailErrorException ex){lblResult.Text = ex.Message;}}
现在我们就完成了Email格式检测的小程序: