Ich erstelle Android-App, die SQLite-Datenbank verwendet. Mit Blick auf die SQLiteDatabase-Klasse habe ich festgestellt, dass es eine Methode namens insertOrThrow()
gibt, die ähnlich wie insert()
ist, aber mit einem wichtigen Unterschied - wenn die Einfügung fehlschlägt, wird die Ausnahme ausgelöst und die App stirbt (wenn nicht abgefangen). Ich verwende insertOrThrow()
in der Anfangsphase der Entwicklung, weil es meine Aufmerksamkeit auf SQL-Fehler in einer sehr auffälligen Weise lenkt, d.h. App stirbt.
Ich bin nur neugierig: Warum gibt es keine updateOrThrow()
, deleteOrThrow()
, etc ... Ich habe versucht, google nach Informationen, aber nichts gefunden ...
Ich denke, das könnte daran liegen, dass insert
und replace
eine einzelne Zeile betreffen sollen. Es kann sinnvoller sein zu werfen, wenn etwas Schlimmes passiert (wie Ihre Zeile wurde aufgrund einer Einschränkung nicht wirklich eingefügt) passiert hier.
Für delete
und update
sind mehrere Zeilen betroffen, und es ist nicht ungewöhnlich, dass von diesen Abfragen keine Zeilen betroffen sind.
In beiden Fällen werden Ausnahmen aus verschiedenen Gründen ausgelöst, z. B. aufgrund einer fehlerhaften Abfrage oder einer nicht vorhandenen Tabelle.
Tags und Links android