lambda表达式内出现异常无法throw抛出
Posted 学习使得吾快乐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda表达式内出现异常无法throw抛出相关的知识,希望对你有一定的参考价值。
问题描述
今儿在使用lambda表达式时,lambda表达式内出现了异常,准备直接抛出,没想到却还是报错:
由于博主lambda表达式用的比较少,刚看到这问题时,可以说是一脸懵逼.毕竟两边的提示可以说是前后矛盾啊.
刷新几下编译器还是报错,就只能老老实实的找原因.
问题原因
所幸Java是一门比较成熟的语言,前辈们已经踩了足够的坑.
之所以有这种现象是因为lambda表达式本身没有处理异常的机制 ,以至于遇到受检异常时,无法通过主动抛出来解决.
但具体的也不是很清楚了,若有其他道友遇到这种问题,欢迎评论区留言讨论.
解决方案
将受检异常包装成非受检异常,即RuntimeException
效果如下:
虽然效果还是不甚理想,就当涨了一波lambda表达式的熟练度吧.
老老实实的用普通循环写也是不错的
参考内容
如果大家遇到了类似的问题,欢迎在评论区一起交流探讨
以上是关于lambda表达式内出现异常无法throw抛出的主要内容,如果未能解决你的问题,请参考以下文章
Java异常处理中关键字throws,throw,try,catch,finally分别代表啥意义?在try块中可以抛出异常吗