[Java] スタティックイニシャライザでのエラー処理

2020年4月27日月曜日

Java

[Java] JDBCドライバもサービスプロバイダーでできてるではスタティックイニシャライザ内でDrivaerManagerにJDBCドライバを登録した。
しかしながら、DriverManager.registerDriverはSQLExceptionをスローするため、チェック例外として処理しなければいけない。

この場合、どのようにエラーハンドリングするべきだろうか。

ExceptionInInitializerError

MyDriver.javaからスタティックイニシャライザを抜き出してみると
public class MyDriver implements Driver {
    static {
        try {
            DriverManager.registerDriver(new MyDriver());
        } catch(SQLException e) {
            throw new ExceptionInInitializerError(e);
        }
    }
ExceptionInInitializerErrorというエラーが標準で用意されているので、それをスローすればいいみたい。
ふーむ、こんなのがあるんだね。