Umgang mit (Cross-Prozess) Ausnahmen in Android benutzerdefinierten Content-Anbieter

Ich habe einen benutzerdefinierten Content-Provider in meiner Android-App, die gut funktioniert. Ich erwarte, dass andere Apps auch auf meinen Content-Provider zugreifen können. Ich möchte einen sauberen Weg, um Ausnahmen und Fehler zu kommunizieren, aber so weit ich kann sagen, die Android-Content-Anbieter-Framework bietet keine Möglichkeit, Ausnahmen über Prozesse zu verbreiten.

Wie soll ich einen Ausnahmezustand an meinen Anrufer angeben? Muss ich irgendwie in meine zurückgegebenen Daten kodieren und auf Kunden verlassen, um es zu überprüfen? Gibt es irgendeine Alternative? Wenn die Kodierung in die gewöhnlichen Rückgabe Daten ist es, was ist der beste Weg? (Ich kann eine Reihe von Alternativen für den Cursor von einem query Aufruf zurückgegeben werden, aber was ist mit dem Uri von insert , oder das int durch update oder delete ?)

One Solution collect form web for “Umgang mit (Cross-Prozess) Ausnahmen in Android benutzerdefinierten Content-Anbieter”

Es gibt eine kurze Liste von RuntimeException Unterklassen, die, wenn sie in den Provider geworfen werden, in einer Client-App erneut geworfen werden. Diese sind:

  • IllegalStateException
  • IllegalArgumentException
  • NullPointerException
  • SecurityException
  • BadParcelableException

Quelle: Erstellen von Content-Providern erwähnt IAE und NPE ; Ich vermutete, dass die anderen auf der Grundlage der Javadoc für Parcel.writeException .

Die Client-App wird nur die Detail-Nachricht, nicht eine Stack-Trace oder die Ursache Stack. Für außergewöhnlichen Zustand, der in einen String (die Detailnachricht) codiert werden kann, ist dies eine vernünftige Wahl.

Ich interessiere mich auch noch für andere Lösungen.

Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.