Java 使用技巧-如何抛出一个异常并捕获它
2022/9/6 14:34:11
本文主要是介绍Java 使用技巧-如何抛出一个异常并捕获它,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
工作中需要使用Java编写插件,但并不是主要技术栈,所以简单地学习记录一下。
背景
与Javascript不同,Java中类型的概念非常强,函数中不能返回与声明不同类型的返回值。
例如下面函数是ObjectNode
类型,返回类型只能是ObjectNode
类型。
下面这段代码需要做两个判断,一是判断帧头帧尾是否符合,二是判断校验和是否正确,我刚开始编写时,没有关注判错的处理逻辑,都是简单地返回的null
。
在测试中,因为一条帧里面的校验码算错了,在测试解码的时候一直报错,最终终于发现了问题。
如何抛出一个异常并捕获
使用throw
关键字 抛出一个Exception
对象,异常信息包裹在括号中。使用try...catch
来捕获异常,如下所示。
public ObjectNode decode(byte[] binaryData) throws Exception { ObjectMapper mapper = new ObjectMapper(); try { if (Utility.First(binaryData) == 0x68 && Utility.Last(binaryData) == 0x16) { // 获取校验码 byte cs = Utility.First(binaryData, decoder.GetLength() + 12); if (cs == Utility.Sum(Utility.Take(binaryData, decoder.GetLength() + 12))) { // 若校验成功 // code... } else { // 校验失败,抛出异常,在catch中处理 throw new Exception("校验失败"); } } else { throw new Exception("帧头或帧尾不匹配"); } } catch (Exception e) { ObjectNode root = mapper.createObjectNode(); System.out.println(e); root.put("error", e.getMessage()); return root; }
这篇关于Java 使用技巧-如何抛出一个异常并捕获它的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署