jdk8 lambda表达式抛出异常

原创
2019/01/10 16:53
阅读数 1.1K

当使用jdk8 lambda表达式循环时,主动捕获异常抛出,此时编译器会编译不通过,解决办法:
1、放弃使用lambda表达式,以普通循环代替;
2、以非受检异常,也就是运行时异常包装后抛出   throw new RuntimeException(e);
3、通过泛型的方式进行包装:
     try{
     }catch(受检异常 e) {

    lambdaThrowException(e); 

    }

/**
 * 把受检异常包装成非受检异常再抛出,避免破坏Java异常的结构,通过泛型的方式解决这个问题
 * @param e
 * @param <E>
 * @throws E
 */
static <E extends Exception> void lambdaThrowException(Exception e) throws E {
    throw (E)e;
}

 

展开阅读全文
JDK
打赏
0
0 收藏
分享
加载中
今天碰到了🙁
2019/01/10 19:14
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部