我想创建一个错误对象。但是没有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);
答案 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
是不必要的。)
进一步阅读:
ThrowException
方法的文档:Exception
类的文档:答案 2 :(得分:1)
据我所知,没有v8::Error
类,但v8::Exception
提供静态成员函数,通过提供{{1}来构造不同类型的错误}参数。
请查看v8::Exception Class Reference,这可能是您正在寻找的内容。
我希望这会有所帮助。