4 Stimmen

Wie sollte ich Fehler in einer API behandeln?

Ich schreibe eine API, die einige Core Foundation Web-Funktionalität, die eine Reihe von möglichen Fehlerbedingungen zurückgeben kann umhüllt. Ich kämpfe mit der Entscheidung über den besten Weg, um Fehlerbedingungen zu behandeln, die der API-Konsument behandeln sollte (wie Netzwerk-Timeouts, unerwartete Ergebnisse, fehlerhaftes XML usw.). Ich habe mir 3 verschiedene Modelle ausgedacht, bin mir aber nicht sicher, welches Modell ich verwenden soll:

Gegeben ein Objekt mit einer Methode takeAction die keinen Wert zurückgibt, sollte ich einen Fehler in der Methode behandeln, indem:

  1. die Methode zu schreiben - (BOOL)takeAction:(NSError **)error so dass der Verbraucher weiß, dass die Methode erfolgreich war oder fehlgeschlagen ist, und das Fehlerobjekt untersuchen kann, um festzustellen, warum,

  2. die Methode zu schreiben - (BOOL)takeAction so dass der Verbraucher wiederum weiß, ob die Methode erfolgreich war oder nicht, und dann - (NSError *)getLastError um festzustellen, warum die Methode fehlgeschlagen ist, oder

  3. schreiben Sie es als - (void)takeAction und eine Benachrichtigung senden, damit der Verbraucher die Benachrichtigung abonnieren und das NSError-Objekt im userInfo-Wörterbuch der Benachrichtigung übergeben kann?

Was ist vorzuziehen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X