unreported exception E; must be caught or declared to be thrown

         在本地编译java服务的时候,编译报错:未报告的异常错误E; 必须对其进行捕获或声明以便抛出

error: unreported exception E; must be caught or declared to be thrown
E extends Exception declared in method rethrowFunction(Function_WithExceptions)

          看提示报错是在rethrowFunction(Function_WithExceptions)中,这块逻辑是在lambda表达式里处理异常:

List<BigDecimal> deList = list.stream()
           .map(LambdaExceptionUtil.rethrowFunction(item -> (BigDecimal) method.invoke(item)))
           .collect(Collectors.toList());


public static <T, R, E extends Exception> Function<T, R> rethrowFunction(Function_WithExceptions<T, R, E> function) throws E {
    return t -> {
        try { return function.apply(t); }
        catch (Exception exception) { throwAsUnchecked(exception); return null; }
        };
    }

        查询资料,没找到具体原因,怀疑和jdk小版本有关系,因为同事稍微高一点的版本没有问题,我本地使用的是jdk1.8.0_60版本,同事的是jdk1.8.0_151版本,又从官网下了1.8.0_731.8.0_181做测试,73版本也不行,但是181版本可以,确定和小版本有关系,怀疑是低版本一个bug,具体原因也没搞明白。

最后有知道的大神欢迎留言解答!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你认识小汐吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值