如何优雅的实现try catch异常块

发布时间:2021-11-24 14:49:40 作者:柒染
来源:亿速云 阅读:321

如何优雅的实现try catch异常块,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在项目中,我们会遇到异常处理,对于运行时异常,需要我们自己判断处理。对于受检异常,需要我们主动处理。

但是繁琐的try{}catch嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何将他隐藏起来。原理是不变的。变得是写法。下面我们来看如何优雅的处理异常块。

在这之前。你需要知道以下几个概念:

如何优雅的实现try catch异常块

如果函数式接口中额外定义多个抽象方法,那么这些抽象方法签名必须和Object的public方法一样,接口最终有确定的类实现, 而类的最终父类是Object。因此函数式接口可以定义Object的public方法。

如何优雅的实现try catch异常块

这句代码想来小伙伴都不陌生。这是一个受检异常,需要抛出一个ClassNotFoundException。

正常的写法:

如何优雅的实现try catch异常块

如何优雅的实现try catch异常块

嗯,我们来看具体的实现:很简单,我们要做的,即把`Class<?> clazz = Class.forName("类名");`当做一种行为去处理,接受一个String ,得到一个Class,所以我们要定义一个函数接口,描述这种行为。

如何优雅的实现try catch异常块

这里,因为我们的行为需要抛出异常。所以在接口里也抛出异常。关于异常的最佳处理这里不介绍了,详细看下这篇《Java 编程中关于异常处理的 10 个最佳实践》。

然后,我们需要定义一个方法,将我们的行为作为参数传进去,同时,捕获一下我们的异常。

如何优雅的实现try catch异常块

然后,我们可以调用我们的方法classFind方法,

如何优雅的实现try catch异常块

当然。其实这种思想并不简单的可以做捕获异常的处理,

我们来看一个Demo->文本文件转换为字符串:

**在我看来;**将文本文件转换为字符串,我们需要使用高级流包装低级流,然后做缓存读出来。这里,我们不可避免的会遇到异常处理,流的关闭等操作,下面我们将这些代码都异常起来。专心写读的逻辑即可。

我的思路:

我对java IO用的不是很熟,大家有好的方法请留言,相互学习:

FileInputStream fileInputStream = new FileInputStream(file))

InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream))

BufferedReader bufferedReader = new BufferedReader(inputStreamReader))

String str = bufferedReader.readLine()

字节流-》字符流-》字符缓存流 即 将字节流转换为字符流之后在用高级流包装。

所以我的思路是避免在逻辑里出现太多的IO流关闭,和异常捕获,专心处理读取逻辑即可,结合以下两种技术:

如何优雅的实现try catch异常块

执一个行为,任何BufferReader -> String的Lambda表达式都可以作为参数传入。只要符合peocess方法的签名即可。

如何优雅的实现try catch异常块

执行

如何优雅的实现try catch异常块

看完上述内容,你们掌握如何优雅的实现try catch异常块的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. 你是否还在写try-catch-finally?来使用try-with-resources优雅地关闭
  2. 在JavaScript中怎么处理异常及处理的try方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

try catch

上一篇:C#基础知识的示例分析

下一篇:Spring Cloud Alibaba入门知识点有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》