异常处理
怎样辨别一个 Java 程序的健壮与否呢 ? 在我看来,异常处理机制是重要的考虑因素之一 . 一个健壮的 Java 程序可以很好地处理异常 , 并给予程序在发生异常时恢复的能力 . 而一个不健壮的程序将导致输出错误的结果甚至导致整个应用的崩溃 !
JDBC 4.0 增加了一些简单而有力的异常处理机制 , 其中值得一提的是链式异常,如果这个异常链存在的话,即可应用增强了的 for - each 循环来获取异常链 ,. 下面的 Example2 类的局部结构展示了如何应用这种新的方法处理链式异常:
public class Example2 {
public static void main(String[] args) {
String dbName = "example";
String tableName = "student4";
try {
con = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("select * from " + tableName);
} catch (SQLException sx) {
for(Throwable e : sx ) {
System.err.println("Error encountered: " + e);
}
}
finally{
//close connections
}
}
}
运行 Example2.java , 注意 student4 并不是数据库中实际存在的表 . 将在下列调用中产生链式异常:
rs = stmt.executeQuery("select * from " + tableName);
在实际的应用中,需要捕捉到这些异常 , 检测并进行相应的处理 . 在本例中,笔者仅将其在控制台输出 . 以下是输出代码:
for(Throwable e : sx ) {
System.err.println("Error encountered: " + e);
}
以下是类 Example2 输出的结果 :
Error encountered: java.sql.SQLSyntaxErrorException:
Table/View 'STUDENT4' does not exist.
Error encountered: java.sql.SQLException:
Table/View 'STUDENT4' does not exist.
Exception in thread "main" java.lang.NullPointerException
at ex.Examlpe2.main(Examlpe2.java:51)
通过应用 JDBC 4.0, 您现在不需太多代码即可以获取及遍历异常链 . 在以往的版本中 , 您在遍历异常链时,必须手工的调用 getNextException 方法才能得到相同的效果 .
| 第1页: 连接数据库变得更加容易 | 第2页: 异常处理 |
| 第3页: 支持的数据类型 |