throw的一些用法

 更新时间:2013年02月26日 14:38:51   作者:  
无论是.net还是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的解说就到这里,今天做项目正好用到这个,所以就总结了一下,希望给你会带来一点点帮助,呵呵。

相关文章

  • ASP.NET 定时器回调方法的重入

    ASP.NET 定时器回调方法的重入

    本文主要介绍了ASP.NET 定时器回调方法的重入的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 使用FlashPaper在线转换.doc为.swf

    使用FlashPaper在线转换.doc为.swf

    Flashpaper的使用相信大多数人都知道,这里的Demo是用于在线转换 .doc文件转换为 .swf的flash文件。
    2011-02-02
  • asp.net使用jquery实现搜索框默认提示功能

    asp.net使用jquery实现搜索框默认提示功能

    这篇文章主要介绍了asp.net使用jquery实现搜索框默认提示功能,大家参考使用吧
    2014-01-01
  • Asp.net GridView隔行变色和光棒效果2种方法实现

    Asp.net GridView隔行变色和光棒效果2种方法实现

    两种方法实现GridView隔行变色和光棒效果:前台和后台配合使用及JQuery方式,感兴趣的朋友可以参考下哈,希望可以帮助到你
    2013-04-04
  • 关于ASP.NET页面打印技术的常用方法总结

    关于ASP.NET页面打印技术的常用方法总结

    B/S结构导致了Web应用程序中打印的特殊性;程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活,接下来介绍几种常见的打印技术,感兴趣的朋友可以了解下
    2013-01-01
  • asp.net Core3.0区域与路由配置的方法

    asp.net Core3.0区域与路由配置的方法

    这篇文章主要给大家介绍了关于asp.net Core3.0区域与路由配置的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用asp.net Core3.0具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 浅谈Asp.Net母版页的相关知识

    浅谈Asp.Net母版页的相关知识

    母版页的使用与普通页面类似,可以在其中放置文件或者图形、任何的HTML控件和Web控件,后置代码等,这篇文章主要介绍了浅谈Asp.Net母版页的相关知识,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • asp.net操作Word实现批量替换

    asp.net操作Word实现批量替换

    这篇文章主要介绍了asp.net操作Word实现批量替换的方法,需要的朋友可以参考下
    2015-10-10
  • .net如何使用Cache框架给程序添加Cache

    .net如何使用Cache框架给程序添加Cache

    这篇文章主要为大家详细介绍了使用.net的Cache框架快速实现Cache操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 让VS2008对JQuery语法的智能感知更完美一点

    让VS2008对JQuery语法的智能感知更完美一点

    上周Rich Strahl的POST中提到一个新发布的VS2008 hotfix修复了VS2008对Javascript智能感知的一些BUG,fixed之后可以让VS2008对JQuery提供智能感知,让我等JQuery fans欣喜了一阵子。可仔细一看,还需要另外给JQuery添加上XML comments才行 :( 丧气了...  
    2008-03-03

最新评论