Ich möchte die Nachricht einer Ausnahme in ein NSError-Objekt konvertieren, so dass ich es in einem try-catch-Block verwenden kann (ich arbeite tatsächlich an einem native iOS module for React Native).So konvertieren Sie eine Ausnahme in ein NSError-Objekt
RCT_EXPORT_METHOD(myMethod:(NSDictionary *)dict
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
@try {
// Do something which could throw something (NS Error or NS Exception)
resolve(nil);
} @catch (NSException *exception) {
// HERE I WANT TO TRANSFORM THE EXCEPTION exception INTO AN ERROR error
NSError error = ???
reject(@"my_error", @"Could not do something important", error);
}
}
Ich will die Ausnahme in ein NSError
konvertieren, weil der dritte Parameter der reject
Funktion (die auf der Seite JS ein Versprechen verwirft) erwartet die Eingabe von NSError
Typ zu sein. Ich bin mir nicht sicher, ob meine Lösung (unter Verwendung von try-catch) das Beste, was in diesem Szenario ist ..
In this Apple Developer Guide es sagt
Sie können eine Ausnahme in ein NSError Objekt konvertieren und dann präsentieren die Informationen in dem Fehlerobjekt an den Benutzer in einem Warnfeld.
jedoch die Führung nicht ein Codebeispiel zeigt dafür und nur ein Codebeispiel für einen zweiten Ansatz wird zeigen, Sie können sie auch indirekt in Methoden geben, die einen Fehler Parameter enthalten, die für das, was zu kompliziert scheint, ich will .
Also, wie würde ich eine Ausnahme in einen NSError konvertieren? The API reference of NSError scheint keine geeignete Funktion zu enthalten ..
Wie möchten Sie die Verwendung des 'NSError' machen? Brauchen Sie wirklich einen 'NSError'? – rmaddy
@rmaddy Ich habe mein Code-Snippet bearbeitet, um meinen Anwendungsfall besser widerzuspiegeln und habe erklärt, warum ich 'NSError' verwenden und' NSException' nicht verwenden kann. Oder könnte ich? – Andru