我开始使用Nan来开发Node.js插件,并且正在阅读有关MaybeLocal的文章。文档说:“如果API方法返回MaybeLocal ,则该API方法可能会因为抛出异常或因为异常悬而未决而失败,例如,由于先前的API调用引发了尚未捕获的异常,或者因为引发TerminateExecution异常。在这种情况下,将返回一个空的MaybeLocal。这大致等于返回空指针,但具有可以检测到该指针的简单类吗? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 (这里是V8开发人员。)是的,“空MaybeLocal”本质上是一个指针,可以是nullptr并强制代码检查该情况。背景是由于JavaScript的特性,许多V8的API操作可能会(某种程度上是意外地)失败:无论何时执行任何JavaScript,该JavaScript代码都可能引发异常。即使读取对象属性也可以调用getter。我们从经验中学到,编写能够正确检查所有这些内容的客户端代码非常困难,因此,如今V8的API主要基于MaybeLocal,可以帮助您找到所有需要进行nullptr检查或.IsEmpty()检查的地方。在MaybeLocal世界中被称为。如果可以保证MaybeLocal不能为空,则可以使用.ToLocalChecked(),如果MaybeLocal为空,则会崩溃。否则,常见的模式是:Local<Value> value;if (maybe_value.ToLocal(&value)) { // Do stuff with {value}.} else { // Handle error. If you have a TryCatch, it should // have caught an exception.}关于node.js - "an empty MaybeLocal"是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47114090/ (adsbygoogle = window.adsbygoogle || []).push({}); 10-09 20:30