Java |异常处理移除投掷器堆栈

时间:2018-07-08 08:46:04

标签: java exception-handling completable-future

我有一个要求,其中所有服务实现类都具有处理异常处理的通用方法。这些服务使用Java 8 Completable的未来。 现在,Completable Future可以接收多个异常,并且基于不同类型的异常,必须将它们包装到新的异常中,然后再从CompletableFuture.exceptionally()方法中抛出。

由于处理异常的代码在所有服务中都是通用的,因此我将代码提取到以下实用程序类中:

 public static <T> Function<Throwable, ? extends T> getExceptionHandleFunction() {
    return throwable -> {

        Throwable throwableCause = throwable instanceof CompletionException ? throwable.getCause() : throwable;

        if (throwableCause instanceof PolicyViolation) {
            throw new ABCException("message", throwableCause);
        }

        if (!(throwableCause instanceof LLCaresTransportException)) {
            throw new DEFException("message", throwableCause);
        }

        throw (GHIException) throwableCause;

    };
}

现在,一切正常,唯一的问题是我的日志中的异常堆栈以编写此方法的UtilityClass开头。

我不希望我的日志显示此不必要的堆栈,因为它没有用,也无法显示异常从哪里开始的真实图片。

有没有一种方法可以截断该实用程序类的堆栈,或者有一种优美的方式来处理此类情况。 我尝试了Apache Commons ExceptionUtils,但它们不支持这种用例。

0 个答案:

没有答案
相关问题