我想將異常消息轉換爲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