OceanBase Connector/J 處理 SQL 異常

2021-06-30 15:38 更新

OceanBase Connector/J 通過(guò)引發(fā) SQL 異常,生成 ?java.sql.SQLException? 類或其子類的實(shí)例,來(lái)處理異常情況。

異??赡茉醋?OceanBase Connector/J,也可能源自數(shù)據(jù)庫(kù)本身。結(jié)果信息會(huì)描述該異常并識(shí)別引發(fā)該異常的方法,還可以附加其他運(yùn)行信息。

?SQLException? 類支持的基本異常處理包括檢索錯(cuò)誤消息、檢索錯(cuò)誤代碼、檢索 SQL 狀態(tài)以及打印堆棧跟蹤。

檢索錯(cuò)誤信息

?SQLException? 類檢索基本錯(cuò)誤信息的方法如下:

  • ?getMessage?
  • ?getErrorCode?
  • ?getSQLState?

示例:調(diào)用 ?getMessage? 方法進(jìn)行輸出顯示。

catch(SQLException ecp)
{
   System.out.println("exception: " + ecp.getMessage());
}

輸出源自 OceanBase Connector/J 的錯(cuò)誤如下:

exception: Invalid column type

打印堆棧跟蹤

?SQLException? 類提供的 ?printStackTrace()? 方法可以用于打印堆棧跟蹤。此方法將可拋出對(duì)象的堆棧跟蹤信息依照標(biāo)準(zhǔn)錯(cuò)誤流進(jìn)行打印。您還可以指定一個(gè)? java.io.PrintStream? 對(duì)象或? java.io.PrintWriter ?對(duì)象進(jìn)行輸出。

示例:捕獲 SQL 異常并打印堆棧跟蹤。

// SQL 代碼示例:遍歷結(jié)果并打印員工姓名  
try { 
       while (rs.next ()) 
       System.out.println (rs.getString (5));  // 假設(shè)使用了不正確的列索引
}
catch(SQLException ecp) { ecp.printStackTrace (); } 

//捕獲 SQL 異常并打印堆棧跟蹤
try { <some code> } 
catch(SQLException ecp) { ecp.printStackTrace (); } 

運(yùn)行程序時(shí)產(chǎn)生的報(bào)錯(cuò)信息如下:

java.sql.SQLException: Invalid column index
at OceanBase.jdbc.driver.OceanBaseResultSetImpl.getDate(OceanBaseResultSetImpl.java:1556)
at emp.main(emp.java:41)


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)