0

假设我有以下几行代码,

       Class.forName(JDBC_DRIVER);
       dbConnection = DriverManager.getConnection(DB_URL, USER, PASS);

现在我想要的是,当捕获到 SQLException 时,我想从 SQLException 的 catch 字段中抛出我的自定义异常,我的意思是可以这样做还是有其他方法可以这样做?

我的自定义异常是 ErrorToDisplayException 为:

    public class ErrorToDisplayException extends Exception{

public ErrorToDisplayException(Throwable e) {
}
    }

我的代码如下:

   try {        
    //Register JDBC driver
       Class.forName(JDBC_DRIVER);
       dbConnection = DriverManager.getConnection(DB_URL, USER, PASS);
   }catch(final SQLException se){
    // Handle errors for JDBC
       throw new ErrorToDisplayException(se);
   }

现在发生的情况是,当编译器到达 }catch(final SQLException se){ 时,它并没有进入它的 catch 主体,只是脱离了,不知道为什么?

4

2 回答 2

1

你的意思是这样的,还是我不明白?!

try {
    Class.forName(JDBC_DRIVER);
    dbConnection = DriverManager.getConnection(DB_URL, USER, PASS);
} catch (SQLException e) {
    throw new MyException(e);
}

或者你的意思是在所有地方用自己的类型替换一些标准异常?

于 2014-03-12T10:09:03.370 回答
0

第一的:

class MyCustomException extends Exception {
    public MyCustomException(Throwable e) {
    }
}

然后:

try {
    Class.forName(JDBC_DRIVER);
    dbConnection = DriverManager.getConnection(DB_URL, USER, PASS);
} catch (SQLException e) {
    throw new MyCustomException(e);
}
于 2014-03-12T10:09:41.260 回答