java 8中引入了lambda表达式,lambda表达式可以让我们的代码更加简介,业务逻辑更加清晰,但是在lambda表达式中使用的Functional Interface并没有很好的处理异常,因为JDK提供的这些Functional Interface通常都是没有抛出异常的,这意味着需要我们自己手动来处理异常。因为异常分为Unchecked Exception和checked Exception,我们分别来讨论。Unchecked exception也叫做RuntimeException,出现RuntimeException通常是因为我们的代码有问题。RuntimeException是不需要被捕获的。也就是说如果有RuntimeException,没有捕获也可以通过编译。虽然这个是一个Unchecked Exception,但是我们还是想处理一下:上面的例子我们使用了try,catch来处理异常,简单但是破坏了lambda表达式的最佳实践。我们将try,catch移到一个wrapper方法中:则原来的调用变成这样:
暂无评论