如何在本机插件中创建node.js错误对象?

时间:2013-08-01 08:19:20

标签: c++ node.js v8

我想创建一个错误对象。但是没有v8::Error::New()如何创建错误对象?

    v8::Handle< v8::Value > result = v8::Undefined();
    v8::Handle< v8::Value > error = v8::Undefined();

    if(m_errorMsg.empty())
    {
        // Not error
    }
    else
    {
        // HERE: Instead of a string I want an error object.
        error = v8::String::New( m_errorMsg.c_str() );
    }

    v8::Handle< v8::Value > argv[] = { error, result };

    m_callback->Call(v8::Context::GetCurrent()->Global(), 2, argv);

3 个答案:

答案 0 :(得分:3)

实际上api已经改变了。现在,你可以用这种方式抛出异常

A  B
C  D
E  F

答案 1 :(得分:2)

这不是特定于Node的,您可以使用V8 API中的ThrowException方法。它需要一个Exception类型的参数,您可以使用Exception类中的一个静态方法创建它。

有关如何执行此操作的示例in this Node tutorial,但也可以随时查看my code on GitHub

ThrowException(Exception::TypeError(String::New("This is an error, oh yes.")));
return Undefined();

注意:调用Undefined()后,请不要忘记返回ThrowException。 (在这种情况下,偶数scope.close是不必要的。)

进一步阅读:

答案 2 :(得分:1)

据我所知,没有v8::Error类,但v8::Exception提供静态成员函数,通过提供{{1}来构造不同类型的错误}参数。

请查看v8::Exception Class Reference,这可能是您正在寻找的内容。

我希望这会有所帮助。