更新时间:2026-07-28 GMT+08:00
处理SQL异常
当JDBC操作(如执行SQL语句、处理结果集等)发生错误时,JDBC程序会抛出SQL异常。SQLException有getMessage()和printStackTrace()等常用方法,详细介绍请参见java.sql.SQLException。
以下代码展示了如何捕捉SQL异常。
try {
<some code>
}
} catch(SQLException e) {
// System.out.println("exception: " + e.getMessage()); // 返回错误的描述信息
e.printStackTrace (); // 将当前异常的堆栈信息打印到标准错误流
} 以使用错误的列索引为例,展示捕捉到SQL异常后的报错信息。若在处理结果集的示例步骤中,将rs.getString(2)写为rs.getString(3)。
- getMessage()方法使用示例
try { while (rs.next()) { int c_customer_sk = rs.getInt(1); String c_customer_name = rs.getString(3); // 使用错误的列索引 System.out.println("c_customer_sk: " + c_customer_sk + ", c_customer_name: " + c_customer_name); } } catch(SQLException e) { System.out.println("exception: " + e.getMessage()); // 返回错误的描述信息 }运行程序后会出现以下信息:
exception: 栏位索引超过许可范围:3,栏位数:2。
- printStackTrace()方法使用示例
try { while (rs.next()) { int c_customer_sk = rs.getInt(1); String c_customer_name = rs.getString(3); // 使用错误的列索引 System.out.println("c_customer_sk: " + c_customer_sk + ", c_customer_name: " + c_customer_name); } } catch(SQLException e) { e.printStackTrace (); // 将当前异常的堆栈信息打印到标准错误流 }运行程序后会出现以下信息:
com.huawei.gaussdb.jdbc.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2。 at com.huawei.gaussdb.jdbc.jdbc.PgResultSet.checkColumnIndex(PgResultSet.java:4005) at com.huawei.gaussdb.jdbc.jdbc.PgResultSet.checkResultSet(PgResultSet.java:4041) at com.huawei.gaussdb.jdbc.jdbc.PgResultSet.getString(PgResultSet.java:2754) at Customer.main(Customer.java:54)
父主题: 典型应用开发示例