AndroidのSQLiteでinsert時に例外をキャッチする方法

こんにちは、もう二月になってしまったようですね。

一は行く、二は逃げる、三は去るですかね。

早いものです。。。

さて、今回は今日私が少しツボったところの対処法を。

これを見てください。

ツボってます。

そうです、AndroidSQLiteでPRIMARY KEYを設定したカラムに重複が起こった時に例外処理を行おうとしたんですが、上手く行きませんでした。

db.insert(sqLiteUtils.TABLE_NAME, null, values);
Toast.makeText(context, context.getString(R.string.auth_success), Toast.LENGTH_SHORT).show();
} catch (SQLiteConstraintException e) {
Toast.makeText(context, context.getString(R.string.auth_failure), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}

db.insert中にPRIMARY KEYを設定したカラムに重複が起こった時に、SQLiteConstraintExceptionが出たのでそれをキャッチすればいいんじゃね と思ったんですが、実際にはスローされていませんでした。

解決策

db.insertの代わりにdb.insertOrThrowを使え! 以上です。