try-catch中使用RuntimeException

/**
 * 将JSON转为POJO
 */
public static <T> T fromJson(String json, Class<?> type){
    T pojo;
    try {
        pojo = (T) OBJECT_MAPPER.readValue(json, type);
    } catch (Exception e) {
        LOGGER.error("convert JSON to POJO failure",e);
        throw new RuntimeException(e);
    }
    return pojo;//这里由于try-catch中抛出了RuntimeException因此能够编译经过
}

在catch中再throw new RuntimeException的,是为了中断程序,由于runtime的异常会中断程序,再也不运行下去java

若是在catch块中不抛出RuntimeException 编译不经过,由于pojo没有初始化.json

若是抛出,则异常处理有了肯定的结果,要么pojo不会为空,要么程序终止。这样逻辑通,若是不抛出RuntimeException,则程序可能在pojo为空的状况下继续运行,则无心义,逻辑不通。spa

相关文章
相关标签/搜索