您的问题有点不清楚,但我还是会尽力回答。
如果您需要从 Objective-C 向 Javascript 引发异常,您应该使用 -[JSContext exception] 属性。详情请见following question。
将异常从 Javascript 传递到 Objective-C 很简单,您只需导出一些方法,该方法将在 Objective-C 中处理异常,例如:
myJSContext[@"PassExceptionToObjC"] = ^void(JSValue *)jsException {
// Handle exception
}
然后在 Javascript 中使用以下代码:
try {
// some code
}
catch (exception) {
PassExceptionToObjC(exception);
}
或者,您可以将特定值从 Javascript 返回到 Objective-C。喜欢:
function doSomething() {
try {
// Do something
return 'Ok';
}
catch (error) {
return 'Error happens ' + error.message;
}
}
如果您需要避免在从 Javascript 调用的方法中抛出 Objective-C 异常,您只需在您的 Objective-C 方法或块中添加 @try/@catch:
myJSContext[@"DoSomething"] = ^void(JSValue *)someValue {
@try {
// Do something
}
@catch (NSException *exception) {
// Handle exception
}
}
或者,最好更改触发异常的 Objective-C 代码的逻辑。
如果您需要避免从 Objective-C 调用的 Javascript 中的异常,类似的方法也适用。您只需添加try/catch。在大多数情况下,您可以简单地忽略 JavaScript 中从 Objective-C 调用的异常。但我建议在 Objective-C 端为任何重要的 Javascript 实现异常处理,至少可以简化故障排除。
希望对你有帮助。