OceanBase Connector/J 处理 SQL 异常
OceanBase Connector/J 通过引发 SQL 异常,生成 java.sql.SQLException
类或其子类的实例,来处理异常情况。
异常可能源自 OceanBase Connector/J,也可能源自数据库本身。结果信息会描述该异常并识别引发该异常的方法,还可以附加其他运行信息。
SQLException
类支持的基本异常处理包括检索错误消息、检索错误代码、检索 SQL 状态以及打印堆栈跟踪。
检索错误信息
SQLException
类检索基本错误信息的方法如下:
-
getMessage
-
getErrorCode
-
getSQLState
示例:调用 getMessage
方法进行输出显示。
catch(SQLException ecp)
{
System.out.println("exception: " + ecp.getMessage());
}
输出源自 OceanBase Connector/J 的错误如下:
exception: Invalid column type
打印堆栈跟踪
SQLException
类提供的 printStackTrace()
方法可以用于打印堆栈跟踪。此方法将可抛出对象的堆栈跟踪信息依照标准错误流进行打印。您还可以指定一个 java.io.PrintStream
对象或 java.io.PrintWriter
对象进行输出。
示例:捕获 SQL 异常并打印堆栈跟踪。
// SQL 代码示例:遍历结果并打印员工姓名
try {
while (rs.next ())
System.out.println (rs.getString (5)); // 假设使用了不正确的列索引
}
catch(SQLException ecp) { ecp.printStackTrace (); }
//捕获 SQL 异常并打印堆栈跟踪
try { <some code> }
catch(SQLException ecp) { ecp.printStackTrace (); }
运行程序时产生的报错信息如下:
java.sql.SQLException: Invalid column index
at OceanBase.jdbc.driver.OceanBaseResultSetImpl.getDate(OceanBaseResultSetImpl.java:1556)
at emp.main(emp.java:41)