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。




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