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

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

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

/**
 * Created by luyangli on 15-9-16.
 * 

* 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。




你可能感兴趣的:(Guava)