Guava(一):初碰Guava参数检测

作为一个开发人员我想我们以前接触的java程序中,需要做到程序的健壮性,我们要进行各方面的检测,其中参数检测是一项很重要的操作,别人的输入不能知道,换句话说用户的操作你不可能操作和控制,我们唯一能做的就是接受用户的所有的操作,其中对于我们不期望的情况进行特别的处理,今天我破门就来看一下Guava中的参数检测,相较于平时的我们的判断,Guava的参数检测机制很是方便。废话不说先来上代码:

import com.google.common.base.Preconditions;
import com.google.common.base.Strings;

/**
 * Created by luyangli on 15-9-16.
 * <p/>
 * Guava 初碰参数检测
 */
public class Precondition1 {

    public static void main(String[] args) {
        preconditionTest("liluyang", 0);
        preconditionTest(null, 3);
    }

    public static void preconditionTest(String name, int age) {
        try {
            /**
             * 自定义抛出异常
             */
            if(Strings.isNullOrEmpty(name)){
                throw new Exception("name is null");
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        try {
            /**
             * 失败时抛出的异常类型:NullPointerException
             */
            Preconditions.checkNotNull(name, "name is null");
        } catch (NullPointerException e) {
            System.out.println(e.getMessage());
        }
        try {
            /**
             * 失败时抛出的异常类型: IllegalArgumentException
             */
            Preconditions.checkArgument(age > 0, "age is < 0");
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}

好了我们先分析一下这段代码:

第一次调用的时候因为name = "liluayng",age = 0;所以在第三个try{ }里面会抛出异常,具体的情况就是参数检测的结果啦。

第二次调用的时候因为name = null,age = 3,所以在第一个,第二个的try{ } 里面会有异常抛出,原因就不说了,都是我自己造的异常抛出的异常。

我们来看一下执行结果:

age is < 0
name is null
name is null

看来我们的分析是OK的。。。。。

这就是我在项目中遇到的几种最常见的参数抛出的异常,我相信这也是大家在实际的操作中遇到的几种参数异常。

好了为什么我要进行异常的分类呢,就是因为在实际的项目中我们的异常操作可能不同,比如监控或者日志的添加,遇到参数的错误异常我们就进行分别的对待,例如:对于用户的操作异常我们只是记录日志而不产生报警,但是对于系统的异常,出现一次旧进行报警,开发人员上线操作接触故障等。

总的来说Guava的参数检测很方便,也很简单,具体的操作大家自己实践一下就OK。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章