千家信息网

java怎么实现try/catch异常块

发表于:2024-07-20 作者:千家信息网编辑
千家信息网最后更新 2024年07月20日,这篇文章主要讲解了"java怎么实现try/catch异常块",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java怎么实现try/catch异常块"吧
千家信息网最后更新 2024年07月20日java怎么实现try/catch异常块

这篇文章主要讲解了"java怎么实现try/catch异常块",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java怎么实现try/catch异常块"吧!

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

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

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

  • 行为参数化:

是java8提出的,函数式编程的一种思想,通过把代码包装为参数传递行为,即把代码逻辑包装为一个参数,传到方法里。

  • Lambda表达式:

java8提出:Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式,它没有名称,但它有函数体,参数列表,返回类型。可以抛出一个异常类型。包装代码逻辑为参数即使用Lambda表达式。

  • 函数式接口:

本质上是只有一个抽象方法的普通接口,可以被隐式的转换为Lambda表达式,需要用注解定义(@FunctionalInterface)。默认方法和静态方法可以不属于抽象方法,可以在函数式接口中定义。

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

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

正常的写法:

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

这里,因为我们的行为需要抛出异常。所以在接口里也抛出异常。

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

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

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

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

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

我的思路:

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

FileInputStream fileInputStream = new FileInputStream(file))  InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream))  BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) String str = bufferedReader.readLine()

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

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

  • try(){}【自动关闭流,1.7支持】

  • lambda特性来实现【行为参数化,1.8】

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

执行

感谢各位的阅读,以上就是"java怎么实现try/catch异常块"的内容了,经过本文的学习后,相信大家对java怎么实现try/catch异常块这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

方法 函数 参数 接口 行为 处理 代码 字符 表达式 逻辑 包装 学习 思路 高级 内容 写法 字符串 思想 文件 文本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 文创与大数据库 数据库服务器拓扑图 前端工作时会用到数据库吗 苏州科远软件开发公司上海分公司 国内银行使用的知名数据库 芜湖数据分布式存储数据库 组态王历史曲线存入数据库 大数据和it软件开发 网络安全的防范措施主要有哪些 数据库服务器应该填什么地方 软件开发项目部日常管理制度 网络安全自查自评项目表 软件开发技巧教程 两个数据库的表联合查询语句 简单的说什么是数据库应用系统 计算机网络技术将来就业前景 网络安全与法治教育作文 域服务器加固 2 米服务器机柜 粤来粤牛互联网科技有限公司 go分布式数据库有哪些 数据库客户端数据显示串行 安装瀚高数据库过程中报错 web页面连接数据库 谈谈网络安全的理解 物联网关键技术时序数据库 安卓视频播放软件开发 数据库 虚拟表 软件开发文档去哪找 加强网络安全工作建议
0