zoukankan      html  css  js  c++  java
  • 基础才是重中之重~开发人员应用学会用throw

    回到目录

    无论是.net还是java,在开发程序时都难免会用到throw关键字,对于初学者一般会认为它与try...catch捆绑在一起,这当然是错误的,事实上,throw的一个最重要的作用就是:

    让程序告诉用户一些事情,这些事情一般是开发人员之前定义好的,如对于一个输入文本框,你需要输入给定数字,但如果输入的不是给定的数据范围,则可以通过throw告诉用户!

    让程序告诉开发人员一些事情,这些事情一般是底层开发人员之前定义好的,如果一些业务规范,如果开发人员输入的不合法,程序就会抛出一个异常,以告诉表层开发人员!

    下面是一个程序中的throw用法:

              if (vp.ContainsKey("flag"))
                {
                    int flagValue;
                    int.TryParse(vp["flag"].ToString(), out flagValue);
                    switch (flagValue)
                    {
                        case 0:
                            linq = linq.Where(i => i.EndTime > DateTime.Now);
                            break;
                        case 1:
                            linq = linq.Where(i => i.EndTime <= DateTime.Now);
                            break;
                        case 2:
                           //...break;
                        default:
                            throw new ArgumentException("参数不正确");
                    }
                }

    上面的代码,由前台用户传入一个参数,这边于程序处理,这里不考虑扩展,所以使用了switch块(对于业务多变的情况下,我们可以使用策略模式,工厂模式去代替switch这个代码坏味道),当你输入的参数不到给定的case条件时,就会向上抛出异常,以告诉用户!当然默认情况下会以黄屏的样子出现,我们运营的系统,当然会做一些处理。

    .net mvc为我们提供的实例项目,是这样使用throw关键字的,看代码:

          public bool ValidateUser(string userName, string password)
            {
                if (String.IsNullOrEmpty(userName)) throw new ArgumentException("值不能为 null 或为空。", "userName");
                if (String.IsNullOrEmpty(password)) throw new ArgumentException("值不能为 null 或为空。", "password");
    
                return _provider.ValidateUser(userName, password);
            }

    好了,对于throw的解说就到这里,今天做项目正好用到这个,所以就总结了一下,希望给你会带来一点点帮助,呵呵。

    回到目录

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 黑色星期五
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    控件动态产生器(使用RegisterClasses提前进行注册)
    Delphi编写自定义控件以及接口的使用(做了一个TpgDbEdit)
    Log4delphi使用心得
  • 原文地址:https://www.cnblogs.com/lori/p/2933218.html
Copyright © 2011-2022 走看看