首页 > 编程语言 >Java 使用技巧-如何抛出一个异常并捕获它

Java 使用技巧-如何抛出一个异常并捕获它

时间:2022-09-05 19:00:48浏览次数:64  
标签:Exception Java ObjectNode 抛出 捕获 binaryData 校验 Utility

工作中需要使用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;
        }

标签:Exception,Java,ObjectNode,抛出,捕获,binaryData,校验,Utility
From: https://www.cnblogs.com/sq800/p/16659176.html

相关文章

  • 【Java基础】关键字this
    1.this是什么this是一个对象,表示当前对象或当前正在创建的对象2.使用在类的方法中,使用this.属性或this.方法调用当前对象属性或方法,但一般都省略。方法的形式参数和类......
  • 【Java基础】JavaBean是什么
    1.JavaBean是什么符合如下标准的Java类类是公共的public有一个无参的公共的构造器有属性,且有对应的get、set方法2.示例publicclassJavaBean{privateStrin......
  • 【Java基础】类的结构之三:构造器(构造方法)
    1.构造器是什么也称为构造方法、构造函数。(1)方法名与类名相同(2)没有返回值类型(3)不能被static、final、synchronized、abstract、native修饰publicclassCircle{......
  • JavaDoc
    JavaDocjavadoc命令是用来生成自己API文档的参数信息:@author作者名@version版本号@since指明需要最早使用的jdk版本@param参数名@return返回值情况......
  • 处理异常:捕获处理,抛出
    java中所有的异常都是java.lang.Throwable类的子类,一般包含两大类:Exception和ErrorException:一般是程序可以自己处理的异常,可以通过try-catch去捕获处理或者throws抛出。......
  • 【设计模式】Java设计模式 - 建造者模式
    【设计模式】Java设计模式-建造者模式......
  • Java学习-第一部分-第二阶段-第八节:IO流
    IO流笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)IO流体系图文件什么是文件文件.对我们并不陌生,文件是保存数据的地方,比如大家经常使用的word文......
  • 【Java基础】面向对象的特征:封装性和权限修饰符
    1.封装(1)什么是封装使用洗衣机时,只需要放入衣物,按下开关和洗涤模式,不需要了解洗衣机的内部结构。只需要知道这个程序怎么用,隐藏对象内部的复杂性,只对外公开简单的接口,便......
  • JavaScript 特殊数字值 NaN
    NaN是唯一一个不和自身不相等的值,Array》prototype.indexOf使用了严格相等,因此不能通过该方法在数组中查找NaN:NaN===NaN//false[NaN].indexof(NaN);//false如......
  • java下载文件的几种方式
    publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=new......