问题: 在springboot项目使用IDE启动的时候,报的 java: 未报告的异常错误org.json.JSONException;
必须对其进行捕获或声明以便抛出
思考: 出现此问题的代码如下
import org.json.JSONObject; return new JSONObject(response);
查看源码:
public JSONObject(String source) throws JSONException {
this(new JSONTokener(source));
}
根据上面的源码我们发现JSONObject构造方法抛出了异常,先不着急咱们接着往下看。。。
package org.json;
public class JSONException extends RuntimeException {
private static final long serialVersionUID = 0L;
public JSONException(String message) {
super(message);
}
public JSONException(String message, Throwable cause) {
super(message, cause);
}
public JSONException(Throwable cause) {
super(cause.getMessage(), cause);
}
}
由上面源码我们发现JSonException 继承了RuntimeException ,因此我们不需要在new JSonObject(response)时抛出异常或者捕获异常。那会是什么原因呢???
解决过程:
1. 验证是否为jdk版本的问题, 验证结果: 失败
2. 不使用IDE启动,在IDE->maven中设置使用maven构建及运行,验证结果: 成功
- org.json.JSONObject使用最新maven依赖 验证结果: 成功
org.json json 20170516
org.json json 20210307
pom.xml替换依赖后,可以成功构建。
解决方案:- 使用maven构建及运行项目, 项目启动速度会变慢。不推荐
- org.json.JSONObject更新到最新依赖。 极力推荐



