【问题标题】:Raising an Exception from Objective-C back to Javascript从 Objective-C 引发异常回到 Javascript
【发布时间】:2015-04-30 22:44:27
【问题描述】:

JavascriptCore 允许我们通过 JSExport 协议将我们的 Objective-C 类公开给 javascript。比方说,在一个公开的 Objective-C 类的方法中,遇到了一个可以引发异常的条件。有没有办法创建所述异常并引发它,以便 javascript 代码可以像处理常规 javascript 异常一样处理它?

我尝试做一个普通的旧 [NSException raise...] 并立即导致崩溃。

我是否被降级为检测引发条件,将该条件传递回 javascript,并让 javascript 执行抛出?

【问题讨论】:

  • 与问题没有直接关系,但在 Objective-C 中抛出异常有意义的实例非常少。
  • 是的。在这种情况下,Objective-C 只是一个 javascript 调用的端点。目的是让异常被抛出到 javascript 代码并在那里处理。

标签: ios exception javascriptcore


【解决方案1】:

Objective-C JSContext 对象具有异常属性,可用于向 JavaScript 抛出异常。根据头文件中的cmets:

在从 JavaScript 向 Objective-C 块进行回调之前或 方法,异常属性的先前值将被保留 并且该属性将设置为零。回调完成后 将读取异常属性的新值,以及先前的值 恢复。如果异常的新值不为零,回调将 导致该值被抛出。

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多