靜音模式【其他模式】
阿新 • • 發佈:2019-01-02
靜音模式
public class Mute { /** * Mute Pattern【靜音模式】: * 提供一個模板來抑制任何宣告但不能發生或只能被記錄的異常,當在執行某些業務邏輯時, * 該模板消除了編寫重複的 try-catch 塊的需要。 */ @Test public void all() { MuteExecutor.syncExecute(() -> { throw new RuntimeException("muted"); }); } } interface Action { void execute(); } @Slf4j final class MuteExecutor { public static void syncExecute(Action action) { try { action.execute(); } catch (final Exception e) { log.error("靜默處理異常", e); } } public static void asyncExecute(Action action) { try { CompletableFuture.runAsync(action::execute); } catch (final Exception e) { log.error("靜默處理異常", e); } } }