You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jackson解析空JSON数组时报未处理异常错误如何解决?

错误原因

这个是Java语言的受检异常(Checked Exception)强制校验规则,和你输入的JSON内容是否合法无关:
com.fasterxml.jackson.databind.ObjectMapper#readTree 方法定义时明确声明了会抛出 JsonProcessingException 受检异常,Java要求所有受检异常必须被显式捕获处理,或者在调用方法的签名上声明抛出,否则编译不通过。

修复方案

两种方案选一种即可:

方案1:在main方法上声明抛出异常

直接在main方法的签名后加 throws JsonProcessingException 即可,修改后的main.java代码如下:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

class Main {
  static String tags = "[]";
  public static void main(String[] args) throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    JsonNode root;
    root = mapper.readTree(tags);
  }
}

这个方案适合测试场景,异常会直接打印到控制台,不需要额外处理逻辑。

方案2:用try-catch捕获异常处理

如果需要自定义异常处理逻辑,可以用try-catch包裹调用代码:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

class Main {
  static String tags = "[]";
  public static void main(String[] args) {
    ObjectMapper mapper = new ObjectMapper();
    JsonNode root;
    try {
      root = mapper.readTree(tags);
      // 后续正常逻辑
    } catch (JsonProcessingException e) {
      // 自定义异常处理逻辑,比如打印错误日志
      e.printStackTrace();
    }
  }
}

修改完代码后重新执行mvn package即可正常编译。

内容的提问来源于stack exchange,提问作者Samha'

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:09:03