Je souhaite convertir le message d'une exception en objet NSError afin de pouvoir l'utiliser dans un bloc try-catch (je travaille actuellement sur un native iOS module for React Native).Comment convertir une exception en objet NSError
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);
}
}
Je veux convertir l'exception dans un NSError
parce que le troisième paramètre de la fonction reject
(qui rejette une promesse sur le côté JS) attend l'entrée étant de type NSError
. Je ne suis pas sûr que ma solution (à l'aide try-catch) est la meilleure chose dans ce scénario ..
En this Apple Developer Guide il dit
Vous pouvez convertir une exception en un objet NSError puis présenter le informations dans l'objet d'erreur à l'utilisateur dans un panneau d'alerte.
Cependant, le guide ne montre pas un exemple de code pour cela et ne montre qu'un exemple de code pour une deuxième approche Vous pouvez également les renvoyer indirectement dans les méthodes qui incluent un paramètre d'erreur qui semble compliqué pour ce que je veux . Alors, comment convertir une exception en une erreur NSError? The API reference of NSError ne semble pas contenir une fonction appropriée ..
Comment souhaitez-vous utiliser la 'NSError'? Avez-vous vraiment besoin d'un 'NSError'? – rmaddy
@rmaddy J'ai édité mon extrait de code pour mieux refléter mon cas d'utilisation et expliqué pourquoi je veux utiliser 'NSError' et ne peux pas utiliser' NSException'. Ou pourrais-je? – Andru