2011-01-30 17 views
8

私はSQLiteデータベースを使用するアンドロイドアプリを作成しています。私はinsert()に似ていますが、一つの重要な違いがあるinsertOrThrow()と呼ばれる方法があることを見出しSQLiteDatabaseクラスを見て - 挿入が失敗した場合には、例外がスローされますと、(catchedない場合)アプリが死んでしまいます。私は開発の初期段階でinsertOrThrow()を使用しています。なぜなら、SQLエラーに非常に目立つように、つまりアプリケーションが死んでしまうからです。
私はちょうど好奇心:なぜ何updateOrThrow()deleteOrThrow()などはありません...私は...なぜinsertOrThrowはありますが、updateOrThrowまたはdeleteOrThrowはありませんか?

答えて

1

を見るためにGoogleを試みたが、何も見つからなかった私はinsertreplaceが意図されているので、それがかもしれないと思います単一の行に影響を与える。何か悪い(あなたの行が制約のために実際には挿入されなかったような)悪いことがここで起きると、投げるほうが意味があるかもしれません。

deleteおよびupdateの場合、複数の行が影響を受け、これらのクエリの影響を受けるゼロ行が異常ではありません。

どちらの場合でも、不正なクエリや存在しないテーブルなど、さまざまな理由で例外がスローされます。

+0

その点から - はい、意味があります。 当初、私は)いくつかの制約が全くupdateOrThrowが(存在しない、なぜ私が思っていた理由は、例えば、一意のような違反れるかもしれませんときInsertOrThrow()が有用であることを考えていた... – Ognyan

+0

私も興味:P –

関連する問題