C#学习笔记四

    技术2022-05-11  124

     学到异常处理,书上以Email验证为例子,我觉得限制的不够,现在就写下。1.首先自定义一个异常:EmailErrorException,继承自System.ApplicationExceptionusing System;using System.Collections.Generic;using System.Text;

    namespace EmailValidate{    class EmailErrorException:System.ApplicationException    {       public EmailErrorException(string message):base(message)       {       }    }}2.建一个验证类,其中验证方法:EmailValidate()

    public void EmailValidate(string email)        {            try            {                this._email = email;                //以@为界线将email字符串分割为一个长度为2的字符数组                string[] em1 = _email.Split('@');                //试着以@为界线将em1[0]分为一个长度为2的数组.                //如果操作成功即数组长度为2,则表示Email不规范。                string[] em2 = em1[0].Split('@');                if (em1.Length != 2)                    throw new EmailErrorException("Email中应该包括'@'");                else                {                    int index = em1[1].IndexOf('.');                    string[] em3 = em1[1].Split('@');                    if (em2.Length == 2 || em3.Length == 2)                        throw new EmailErrorException("Email中只能有一个'@'");                    //如果在@后面的字符串中没有"."或者在第一一位,则引发异常。                    if (index <= 0)                        throw new EmailErrorException("不存在'.'或者在'@'后第一位");                    //如果"."在最后一位,则引发异常。                    if (em1[1][em1[1].Length - 1] == '.')                        throw new EmailErrorException("'.'不能在Email的最后一位");                    //如果在@后面的字符串中有两个连续的".",则引发异常。                    if (em1[1][index + 1] == '.')                        throw new EmailErrorException("两个'.'不能连续写在一起");                }            }            catch (EmailErrorException em)            {                MessageBox.Show(em.Message);            }        }

    当然还有一些情况没有限制到,如:123@tom.,com


    最新回复(0)