前言
希望在java里實(shí)現(xiàn)js的函數(shù)回調(diào)的效果,用于封裝統(tǒng)一的異常處理邏輯??戳讼潞瘮?shù)式編程與lambda表達(dá)式,如下。
一、接口示例
@FunctionalInterface
interface Callback {
public Object call(Object object) throws Exception;
}
二、實(shí)例
/**
* 執(zhí)行語句 捕捉異常 記錄日志 發(fā)送郵件 任務(wù)重試
*
* @param object
* @param callback
* @return
*/
public Object exceptionHandler(Object object, String errorDescription, Callback callback) {
while (true) {
try {
return callback.call(object);
} catch (Exception e) {
// 異常處理邏輯
}
}
}
三、調(diào)用
exceptionHandler(null, "errorDescription", (x) -> {
// 語句塊
return ...;
});