Androidで例外を処理する方法を検討しています。
update()
メモ帳コンテンツプロバイダーのサンプルコードの関数ではgetWriteableDatabase()
、を呼び出します。これにより、がスローされる可能性がありSQLiteException
ます。
NoteEditor
Activity
saveNote()
関数に次のコードがあることに気付きました。
// Commit all of our changes to persistent storage. When the update completes
// the content provider will notify the cursor of the change, which will
// cause the UI to be updated.
try {
getContentResolver().update(mUri, values, null, null);
} catch (NullPointerException e) {
Log.e(TAG, e.getMessage());
}
が発生した場合はどうSQLiteException
なりますか?でこの例外をキャッチし、ユーザーに適切なメッセージを表示できるようにしたいと思いActivity
ます(トーストなどを介して)。
のキャッチを追加することでできると思いましたSQLiteException
。ただし、Googleドキュメントで次の情報を読みました。
「Androidシステムはプロセスの境界を越えて例外を通信できる必要があることに注意してください。Androidは、クエリエラーの処理に役立つ可能性のある次の例外に対してこれを行うことができます。
IllegalArgumentException(プロバイダーが無効なコンテンツURIを受け取った場合にこれをスローすることを選択できます)
NullPointerException "
だから私は今混乱しています-私は捕まえることができSQLiteException
ますか?