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 に答える