我想将异常消息转换为NSError对象,以便我可以在try-catch块中使用它(我实际上正在处理native iOS module for React Native)。如何将异常转换为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);
}
}
欲异常转换成NSError
因为reject
函数(拒绝一个无极对JS侧)的第三个参数期望的输入是NSError
类型。我不知道我的解决方案(使用的try-catch)是否在这种情况下的最好的事情..
您可以将异常转换成NSError对象,然后呈现警告面板中的错误对象中的信息给用户。
然而,指南不显示该代码示例,只显示了第二种方法一个代码示例,您也可以间接地包含一个错误参数这似乎复杂了,我想要什么方法将返回他们。
那么,我将如何将异常转换为NSError? The API reference of NSError似乎并不包含合适的功能。
你怎么想利用'NSError'的?你真的需要一个'NSError'吗? – rmaddy
@rmaddy我编辑了我的代码片断以更好地反映我的用例,并解释了为什么我想使用'NSError'并且不能使用'NSException'。或者我能吗? – Andru