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

相關文章
相關標籤/搜索