如何抛出异常并在Node.js中捕获它
How to throw the exception and catch it in the Node.js?
我正在Node.js中使用C/C++编写一个ADD-ON。出于某种原因,我需要在C/C++插件端抛出异常,并在JavaScript端捕获异常。
JavaScript端:
try {
var conn = addon.get();
} catch(e) {
console.log("catching....................");
}
C/C++代码:
if (args.Length() <= 1 && !args[1]->IsFunction()) {
ThrowException(Exception::TypeError(String::New("Arguments 1 expect a function!")));
}
实际行为是:对于WIN:弹出一个对话框并显示:
Microsoft Visual C++运行库
断言失败!
程序:。。。verMananger\src\wrapper\build\Release \nodedb2.node文件:c: \users\ibm_admin.node gyp\0.10.1…\node_ob…_wrap.h行:60
表达式:!手柄IsEmpty()
有关程序如何导致断言的信息失败,请参阅关于断言的Visual C++文档
(按"重试"调试应用程序-必须启用JIT)
中止重试忽略
对于Linux:
node:/root/.node gyp/0.10.9/src/node_object_wrap.h:60:static T*node::ObjectWrap::展开(v8::Handle)[带T=NodeDB2Connection]:断言`!手柄IsEmpty()'失败。
如何抛出异常并在Node.js中捕获它?每个人都遇到了和我一样的问题吗?
除了没有返回任何内容之外,一切看起来都很好。向节点抛出异常与常规C++异常不同。你所需要做的就是在通话后添加以下线路,你应该很好:
return scope.Close(Undefined());
所以一切看起来都是这样的:
if (args.Length() <= 1 && !args[1]->IsFunction()) {
ThrowException(Exception::TypeError(String::New("Arguments 1 expect a function!")));
return scope.Close(Undefined());
}
相关文章:
- 在 ubuntu 上安装 node js pulsar 客户端
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- 在 node.js 中将缓冲区从 C++ 转换为 UTF-8 字符串
- 使用 Node.js N-API 调用 C 函数时,不会显示预期的输出
- 如何使用 v8 本机插件将 C++ 数组交付到 Node.js
- C++ 和 node.js 之间的 RSA 加密
- node.js Nan:在函数C++调用 JavaScript 回调
- 迭代 Napi::对象属性(键)在 Node.js C++ N-API 中
- 上传大文件并解析时使用 Node.js v10.15.1 时出现致命错误
- 如何在 Node.js 中解压缩 c# 打包结构
- 使用 Node.js 调用child_process与从 C 调用子进程并创建C++绑定以从 node.js 调用
- 我们如何访问 Node.js 应用程序之外的内存?
- 我正在c 中的buidling node.js绑定
- 以有效的方式从 Node .js运行 C 或C++代码
- node.js:如何从C 模块中产生
- 如何编译 node.js for CentOS 6.10 (库问题)
- 如何使用 Node.js 开发一个侦听器来接收许多车辆跟踪数据(通过 TCP)
- 使用 N-API 将数据流式传输到 Node.js C++ 插件中
- 在构建Node.js/Node-webkit插件时,通过binding.gyp将.cpp文件编译为Objective-C
- 终端服务器上的IPC,带有一个nw.js/node.js/node-namemodule(C++)