Warum gibt es insertOrThrow, aber kein updateOrThrow oder deleteOrThrow?

8

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 ...

    
Ognyan 30.01.2011, 19:59
quelle

1 Antwort

1

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.

    
Matthew Willis 13.03.2011 21:10
quelle

Tags und Links