Skip to content

Files

Latest commit

a225d16 · Mar 6, 2023

History

History
35 lines (25 loc) · 797 Bytes

四、错误处理.md

File metadata and controls

35 lines (25 loc) · 797 Bytes

四、错误处理

错误处理

插件通过Napi::Error提供错误处理的能力。

c++抛出错误给js

如果插件开启了错误捕获(见前文《实现c++插件的三种方式》:安装和配置 node-addon-api部分):

throw Napi::Error::New(env, "Example exception");

如果未开启:

Napi::Error::New(env, "Example exception").ThrowAsJavaScriptException();
// 这里需要return立即返回
return;

c++捕获js callback错误

在c++中可以使用try...catch来捕获js callback的错误:

Napi::Function jsFunctionThatThrows = someValue.As<Napi::Function>();
Napi::Value result;
try {
    result = jsFunctionThatThrows({ arg1, arg2 });
} catch (const Error& e) {
    cerr << "Caught JavaScript exception: " + e.what();
}