# 功能

自定义异常信息

# 程序示例

package com.example.google.guava.demo.clazz;
 
import com.google.common.base.Preconditions;
 
/**
 * <p>
 * <code>PreconditionsTest</code>
 * </p>
 * Description:Preconditions 提供静态方法来检查方法或构造函数,被调用是否给定适当的参数。它检查的先决条件。其方法失败抛出 IllegalArgumentException。
 *
 * @author Mcchu
 * @date 2017/10/18 16:21
 */
public class PreconditionsTest {
 
    public static void main(String[] args) {
 
        try {
            System.out.println(sqrt(-3.0));
        }catch(IllegalArgumentException e){
            System.out.println(e.getMessage());
        }
 
        try {
            System.out.println(sum(null,3));
        }catch(NullPointerException e){
            System.out.println(e.getMessage());
        }
 
        try {
            System.out.println(getValue(6));
        }catch(IndexOutOfBoundsException e){
            System.out.println(e.getMessage());
        }
 
        try {
            System.out.println(overOne(0));
        }catch (IllegalStateException e){
            System.out.println(e.getMessage());
        }
    }
 
    // 平方根
    private static double sqrt(double input) throws IllegalArgumentException {
        Preconditions.checkArgument(input > 0.0,
                "异常信息:此参数不大于0,无法开平方根 %s.", input);
        return Math.sqrt(input);
    }
 
    // 求和
    private static int sum(Integer a, Integer b){
        a = Preconditions.checkNotNull(a,
                "异常信息:第一个参数为null.");
        b = Preconditions.checkNotNull(b,
                "异常信息:第二个参数为null.");
        return a+b;
    }
 
    // 判断数组长度
    private static int getValue(int input){
        int[] data = {1,2,3,4,5};
        Preconditions.checkElementIndex(input,data.length,
                "异常信息:数组长度越界.");
        return 0;
    }
 
    // 判断状态
    private static int overOne(int input){
        Preconditions.checkState( input>1,
                "异常信息:传入数据不大于1" );
        return 0;
    }
}

# 输出结果

异常信息:此参数不大于0,无法开平方根 -3.0.
异常信息:第一个参数为null.
异常信息:数组长度越界. (6) must be less than size (5)
异常信息:传入数据不大于1

参考:http://www.yiibai.com/guava/guava_preconditions_class.html

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Jalen Chu 微信支付

微信支付

Jalen Chu 支付宝

支付宝

Jalen Chu 公众号

公众号