Мое понимание "правильного" способа создания пользовательского класса ошибок в JavaScript выглядит примерно так:
function MyError(message) {
this.name = "MyError";
this.message = message || "Default Message";
}
MyError.prototype = new Error();
MyError.prototype.constructor = MyError;
(фрагмент кода вызывается из https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error.)
С NodeJS, если я попытаюсь проверить ошибку такого типа, например:
var err = new MyError("whoops");
assert.ifError(err);
... backtrace покажет контекст объекта Error, который я создал во время компиляции, чтобы быть прототипом для MyError, а не объектом MyError, который я создал с помощью нового MyError().
Есть ли способ, которым я могу получить правильные данные обратной линии для фактической ошибки, а не прототипа?