异常

欢马劈雪     最近更新时间:2020-08-04 05:37:59

86

异常处理可以允许你处理一个异常情况,例如可控方式的程序定义错误。

当异常情况发生时,将抛出一个异常。抛出这个词意味着当前执行的程序停止,控制器被重定向到最近的适用的 catch 子句。如果没有适用的 catch 子句存在,那么程序执行被终止。

JDBC 的异常处理是非常类似于 Java 的异常处理,但对于 JDBC,最常见的异常是 java.sql.SQLException

SQLException 方法

SQLException 异常在驱动程序和数据库中都可能出现。当出现这个异常时,SQLException 类型的对象将被传递到 catch 子句。

传递的 SQLException 对象具有以下的方法,以下的方法可用于检索该异常的额外信息-

方法 描述
getErrorCode( ) 获取与异常关联的错误号。
getMessage( ) 获取 JDBC 驱动程序的错误信息,该错误是由驱动程序处理的,或者在数据库错误中获取 Oracl 错误号和错误信息。
getSQLState( ) 获取 XOPEN SQLstate 字符串。对于 JDBC 驱动程序错误,使用该方法不能返回有用的信息。对于数据库错误,返回第五位的 XOPEN SQLstate 代码。该方法可以返回 null。
getNextException( ) 获取异常链的下一个 Exception 对象。
printStackTrace( ) 打印当前异常或者抛出,其回溯到标准的流错误。
printStackTrace(PrintStream s) 打印该抛出,其回溯到你指定的打印流。
printStackTrace(PrintWriter w) 打印该抛出,其回溯到你指定的打印写入。

通过利用可从 Exception 对象提供的信息,你可以捕获异常并继续运行程序。这是一个 try 块的一般格式-

try {
   // Your risky code goes between these curly braces!!!
}
catch(Exception ex) {
   // Your exception handling code goes between these 
   // curly braces, similar to the exception clause 
   // in a PL/SQL block.
}
finally {
   // Your must-always-be-executed code goes between these 
   // curly braces. Like closing database connection.
}

示例

研究学习下面的示例代码来了解 try .... catch ... finally 块的使用。

展开阅读全文