javascript - Emscripten:如何捕获JS异常?

标签 javascript c++ exception try-catch emscripten

Emscripten 'val.h' API 允许调用 JS 对象的方法,但是 C++ try-catch 不会捕获 JS 异常。考虑这个例子:

#include <emscripten.h>
#include <emscripten/val.h>

void test(){
    string t = "some invalid json";
    val    v = val::object();

    // This C++ try-catch doesn't catch JS exception
    try {
        v = val::global("JSON").call<val>("parse", t);
        cout <<"ok" <<endl;
    }
    catch(...){
        cout <<"failed" <<endl;
    }

    cout <<"ret" <<endl;
}

JS 异常使“test”函数停止,并且没有 ok、没有 failed、没有 ret 打印出来。如何捕获 JSON.parse 抛出的 JS 异常?

这里有 1 个问题,但仍处于开放状态:https://github.com/emscripten-core/emscripten/issues/11496

最佳答案

基于documentation :

By default, exception catching is disabled in Emscripten.

你必须enable it使用 -fexceptions 参数。

关于javascript - Emscripten:如何捕获JS异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70894860/

相关文章:

c++ - 查找初始化列表中的哪个成员抛出异常

javascript - 如何为整个 MobX 可观察数组设置新值

javascript - 如何在不替换正则表达式之前的空格的情况下替换某些单词

c++ - Blinn-Phong 照明 - 全色的最佳计算是什么

未找到匹配的 C++ 模板运算符

c++ - 使用 C++ 编译器设置 MATLAB

ios - Xcode 4 在异常时中断或使用良好的调用堆栈进行断言并打印异常

java - 显示 SQL 错误信息

javascript - 按属性对特定结构对象进行排序

javascript - 单击 map 中的某个点会给出错误的纬度和经度?