代码之家  ›  专栏  ›  技术社区  ›  Amir

发生SQLException时,如何调用自定义异常?

  •  0
  • Amir  · 技术社区  · 10 年前

    假设我有以下几行代码,

           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(最终SQLException se){ 它不去抓它的身体,只是挣脱了,不知道为什么?

    2 回复  |  直到 10 年前
        1
  •  1
  •   Anver    10 年前

    你是说那样的事还是我不明白?!

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

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

        2
  •  0
  •   DmitryKanunnikoff    10 年前

    第一:

    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);
    }