我的项目中有以下方法。当我捕获 SQLException 时,例如键“ID_UNIQUE”的重复条目“505051”
,我喜欢向 obj
添加一条消息。
然而,obj.put (e.getMessage());
行告诉我空指针访问:变量obj在此位置只能为空
。你知道如何在 obj 中添加一个刺吗?
public JSONArray insert_patient_data(String name, String surname) {
JSONArray obj = null;
Connection conn = this.getDBMySQLCon();
ResultSet rs = null;
String queryString = "CALL insert_patient (?,?)";
PreparedStatement preparedStmt = null;
try {
preparedStmt = conn.prepareCall(queryString);
preparedStmt.setString(1, name);
preparedStmt.setString(2, surname);
boolean results = preparedStmt.execute();
int rowsAffected = 0;
conn.close();
return obj;
} catch (SQLException e) {
e.printStackTrace();
System.out.print(e.getMessage());
obj.put (e.getMessage());
return obj;
}
最佳答案
问题出在 obj 上。
在第二行中,您编写了 JSONArray obj = null;
并且从未创建新的 JSONArray。
所以,当你写obj.put(e.getMessage());
时,obj仍然是null!这就是您的错误消息的原因。
尝试做:
JSONArray obj = new JSONArray();
然后,您的代码应该可以工作。
关于java - 如何在catch部分的对象中添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53483214/