SQLiteConstraintException nicht abgefangen

8

Was ist das Problem mit diesem Code? Es fängt nicht die Ausnahme ein, die von insertChild() method ausgelöst wird.

%Vor%

Der Fehler ist:

%Vor%

Es ist Android SQLite. Die Zeile wird angezeigt, wenn die Einfügemethode aufgerufen wird.

    
bogdan 06.08.2010, 06:50
quelle

3 Antworten

37

Die SQLiteDatabase.insert () -Methode wird in den Fällen verwendet, in denen Sie Datenbankschreibvorgänge verarbeiten möchten, ohne den Stapel abzuwickeln, wenn ein Schreibvorgang fehlschlägt. Wenn Sie Ausnahmen beim Einfügen in die Datenbank abfangen möchten, verwenden Sie die Methode [SQLite.insertOrThrow (] [1]). Es wird eine Ausnahme ausgelöst, die Sie dann fangen und behandeln können.

[1]: Ссылка , Java .lang.String, android.content.ContentValues)

    
Stephan Leroux 04.02.2011 17:05
quelle
3

Sie fangen nur Ausnahmen vom Typ SQLiteException . Wenn die Methode insertChild eine andere Ausnahme auslöst, wird sie nicht abgefangen.

%Vor%     
Amarghosh 06.08.2010 06:51
quelle
0

@bogdan gibt es einen anderen Ort, den du anrufstChild (child); anders als dieser Ort. hast du eine trace in try block geschrieben, um zu wissen, ob es zu diesem block kommt und die trace wie folgt auszudrucken.

  

try {Log.i ("kommt   hier ");
  childDbOps.insertChild (untergeordnet); }

lass es mich wissen.

    
Dead Programmer 06.08.2010 10:08
quelle