我是靠谱客的博主 潇洒鱼,这篇文章主要介绍unreported exception E; must be caught or declared to be thrown,现在分享给大家,希望可以做个参考。

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

复制代码
1
2
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表达式里处理异常:

复制代码
1
2
3
4
5
6
7
8
9
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,具体原因也没搞明白。

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

最后

以上就是潇洒鱼最近收集整理的关于unreported exception E; must be caught or declared to be thrown的全部内容,更多相关unreported内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(94)

评论列表共有 0 条评论

立即
投稿
返回
顶部