c++node.jsnode.js-addonnode.js-nan

How should I throw an error with a numeric code in NAN 1.x?


In NAN 1.9, the NanThrowError(const char *msg, const int errorNumber) method was deprecated, and it looks like an equivalent method is not present in NAN 2.0. Is there another way to get this same functionality with NAN, or is it just gone entirely?


Solution

  • It was removed because it was unnecessary, easily implemented as needed.

    inline v8::Local<v8::Value> makeErrorWithCode(const char *msg, int code) {
        NanEscapableScope();
        v8::Local<v8::Object> err = NanError(msg).As<v8::Object>();
        err->Set(NanNew("code"), NanNew<v8::Int32>(code));
        return NanEscapeScope(err);
    }
    
    return NanThrowError(makeErrorWithCode("message", 1337));