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的解说就到这里,今天做项目正好用到这个,所以就总结了一下,希望给你会带来一点点帮助,呵呵。

(0)

相关推荐

  • throw的一些用法

    无论是.net还是java,在开发程序时都难免会用到throw关键字,对于初学者一般会认为它与try...catch捆绑在一起,这当然是错误的,事实上,throw的一个最重要的作用就是: 让程序告诉用户一些事情,这些事情一般是开发人员之前定义好的,如对于一个输入文本框,你需要输入给定数字,但如果输入的不是给定的数据范围,则可以通过throw告诉用户! 让程序告诉开发人员一些事情,这些事情一般是底层开发人员之前定义好的,如果一些业务规范,如果开发人员输入的不合法,程序就会抛出一个异常,以告诉表层开

  • C++异常处理 try,catch,throw,finally的用法

    写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使用过异常,但是你习惯使用异常了吗? 现在很多软件都是n*365*24小时运行,软件的健壮性至关重要. 内容导读 本文包括2个大的异常实现概念:C++的标准异常和SEH异常. C++标准异常: 也许你很高兴看到错误之后的Heap/Stack中对象被释放,可是如果没有呢? 又或者试想一下一个能解决的错误

  • C++中try throw catch异常处理的用法示例

    前言 今天在开发过程中调用一个库函数结果库函数有throw操作,当前代码没有对throw进行捕获操作,导致进程在main 函数中捕获到异常导致进程crash.所以借此记录下c++关于try,throw,catch的用法. 程序运行时常会碰到一些异常情况,例如: 做除法的时候除数为 0: 用户输入年龄时输入了一个负数: 用 new 运算符动态分配空间时,空间不够导致无法分配: 访问数组元素时,下标越界:打开文件读取时,文件不存在. 这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃. 所谓

  • Java中的异常处理用法及其架构和使用建议

    Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性.在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出. Java异常机制用到的几个关键字:try.catch.finally.throw.throws. 关键字 说

  • 详解JavaScript中的异常处理方法

    有三种类型的编程错误:(1)语法错误和(2)运行时错误(3)逻辑错误: 语法错误: 语法错误,也被称为解析错误,在编译时进行传统的编程语言,并出现在JavaScript解释时. 例如,下面一行将导致一个语法错误,因为它缺少一个右括号: <script type="text/javascript"> <!-- window.print(; //--> </script> 当一个语法错误在JavaScript中出现,只有在同一个线程中包含的语法错误的影响

  • Java异常简介和架构_动力节点Java学院整理

    Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性.在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出. Java异常机制用到的几个关键字:try.catch.finally.throw.thro

  • Java抛出异常与自定义异常类应用示例

    本文实例讲述了Java抛出异常与自定义异常类.分享给大家供大家参考,具体如下: 异常处理常用方法: 常用的异常处理方法有: 一.try()catch() 语句 二.throw / throws 语句 三.自定义异常类 用途: 众所周知,当程序运行过程中,如果遇到了错误(比如数组下标越界,空指针等)程序就会自动终止,但这种错误一般是偶然的,可能是用户输入不呵呵程序编写者的意图导致,而不是程序本身问题,这是我们要做的,是让操作者知道发生了什么事情,而不是直截了当的结束程序,这时我们就用到了异常处理(

  • java自定义异常以及throw和throws关键字用法

    java中内置了很多可能在编程时出现的大部分异常.除此之外,用户可以使用一个类继承Exception类即可继承自定义类异常. 在程序中自定义类,大体上分为以下几个步骤: 1.创建自定义异常类 2.在方法中通过throw关键字抛出异常对象. 3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕捉并处理异常,否则在方法的声明处通过throws指明要抛出给方法调用者的异常,继续进行下一步操作. 4.再出现异常的方法的调用者中捕获处理异常. 下面是我创建自定义异常.在项目中创建类M

  • Java构造方法 super 及自定义异常throw合集详解用法

    1.构造方法: public 类名(){} 区别一下 // public void 方法名(){} 分为有参,无参子类构造方法 public class Zi extends fu{ public int message=35; public Zi(){ System.out.println("我是谁"); }} 创建对象时:就会输出:子类构造方法中内容: 2.super和this使用: public void show(int message) { System.out.printl

  • 详细介绍Java关键字throw throws Throwable的用法与区别

    目录 1. Throwable 1.1 扩展-Error 1.2 扩展-Exception 2. throws 2.1 扩展 3. throw 3.1 扩展 4. 总结 throw,意为“投掷.抛.扔”.Throw.Throws和Throwable三者都用于异常处理. 1. Throwable Throwable在Java中是异常处理这个分支的顶级父类,其它所有异常处理的实现都依赖于Throwable 打开Java官方文档(Java8版本),找到Throwable,它的直接子类为Error和Ex

随机推荐