【发布时间】:2026-02-03 15:00:01
【问题描述】:
我想将异常消息转换为 NSError 对象,以便我可以在 try-catch 块中使用它(我实际上正在处理 native iOS module for React Native)。
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 端拒绝Promise)期望输入为NSError 类型。我不确定我的解决方案(使用 try-catch)在这种情况下是否是最好的。
在this Apple Developer Guide 中说
您可以将异常转换为 NSError 对象,然后在警报面板中将错误对象中的信息呈现给用户。
但是该指南没有显示代码示例,只显示了第二种方法的代码示例您也可以在包含错误参数的方法中间接返回它们,这似乎很复杂我要。
那么,如何将异常转换为 NSError? The API reference of NSError 似乎没有包含合适的功能..
【问题讨论】:
-
您希望如何使用
NSError?你真的需要NSError吗? -
@rmaddy 我编辑了我的代码 sn-p 以更好地反映我的用例,并解释了为什么我想使用
NSError而不能使用NSException。或者我可以吗? -
这能回答你的问题吗? How can I use NSError in my iPhone App?
标签: ios objective-c exception react-native-ios