【机房合作】异常处理实战

简介: 【机房合作】异常处理实战

之前看过了异常处理的一篇博客:

[ http://blog.csdn.net/ls1645/article/details/50528789 C#中的异常捕获机制(try catch finally)]

在机房中实践了一下,终于有些理解了。上面链接中的文章对于异常处理的阐释已经很清楚明白了,我就把机房中异常处理的例子贴出来吧,应用地很简单。

登录中验证用户名密码的正确性:

U层代码:

try
       {
        //检查用户名密码是否正确
        //如果返回值为false,则给出提示,否则继续进行
        if (!loginF.IsCorrect(listUser))
        {
            MessageBox.Show("用户名或密码错误!请检查", "提示!");
            txtUserID.Focus();//设用户名为焦点
            return;
         }
         }
catch (Exception)
        {
            MessageBox .Show ("错误类型:"+e,"提示");
            return;
        }

B层代码:

#region 判断密码是否正确
        /// <summary>
        /// 判断密码是否成功
        /// </summary>
        /// <param name="user">用户名</param>
        /// <returns>密码正确或失败</returns>
        public bool IsCorrect(List<TC_User> user)
        {
            try
            {
                IDAL.IUser iuser = factory.CreateIUser();
                List<TC_User> listUser = iuser.GetUserInfo(user);
                //如果从数据库中查出的用户名密码与界面中传来的用户名密码均匹配,则返回true;否则,返回false
                if (listUser[0].userID.Trim() == user[0].userID.Trim() && listUser[0].passWord.Trim() == user[0].passWord.Trim())
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        #endregion

D层代码:

#region 根据用户ID获得用户表中的信息
        /// <summary>
        ///  获得用户表中的信息
        /// </summary>
        /// <param name="user">用户信息:userid</param>
        /// <returns>List<TC_User></returns>
        public List<TC_User> GetUserInfo(List<TC_User> user)
        { 
            string sql = "select * from TC_User where userID=@userID";
            SqlParameter[] paras = new SqlParameter[]{
                //new SqlParameter("@userID",user[0].userID )  //(这里特意注释掉,为了测试try...catch使用)
            };
            dt = sqlhelper.ExecuteQuery(sql, paras, CommandType.Text);
            //转实体
            List<TC_User> selectUser = new List<TC_User>();
            selectUser = entityUserList.ToList(dt);
            return selectUser;
        }
        #endregion

运行时的图:

点击确定按钮,提示框关闭,系统不会崩溃。

在异常处理的使用过程中发现,往往有异常处理,不好调试程序,尤其是自定义的异常处理不是那么准确的时候。


相关文章
|
运维 监控 Java
研发规范第十三讲:阿里 - 如何进行项目稳定性建设
研发规范第十三讲:阿里 - 如何进行项目稳定性建设
549 0
|
6月前
|
存储 容灾 NoSQL
同城双活的必修课 - 落地经验与关键挑战解析
同城双活作为一种容灾架构,通过在同一城市建立两个数据中心,以确保在一个数据中心发生故障时,系统能够快速切换到另一个数据中心,从而提高系统的可用性
795 2
同城双活的必修课 - 落地经验与关键挑战解析
|
6月前
|
存储 网络协议 中间件
双活数据中心建设要点
【5月更文挑战第9天】构建同城双活数据中心涉及全局负载均衡、跨中心同步、中间件集群、存储架构、业务系统改造、备份方案和容灾管理等多个关键点。
|
监控 Java 编译器
异常体系与项目实践
程序中的异常可以反映系统的缺陷和待优化的点,并且是无法完全避免的,如何处理异常和降低异常出现的频率,是系统质量的基础保障;随着分布式架构的流行,各种复杂的请求链路给异常处理带来了巨大的麻烦;
176 0
异常体系与项目实践
【机房合作】单例模式实战
【机房合作】单例模式实战
39 0
|
容灾 应用服务中间件
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.4 容灾演练方案——4.4.2 公共区应用层演练
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.4 容灾演练方案——4.4.2 公共区应用层演练
|
域名解析 容灾 网络安全
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.4 云外网络改造
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.4 云外网络改造
199 0
|
弹性计算 容灾 安全
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.2 平台侧网络改造(上)
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.2 平台侧网络改造(上)
290 0
|
负载均衡 容灾 应用服务中间件
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.2 平台侧网络改造(下)
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.2 平台侧网络改造(下)
238 0
|
弹性计算 负载均衡 容灾
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.3 应用侧网络改造
《医保行业容灾演练云上技术白皮书》——第四章 医保云容灾演练方案——4.2 容灾演练改造——4.2.3 应用侧网络改造
134 0
下一篇
无影云桌面