Как мне получить правильную трассировку для настраиваемого класса ошибок в NodeJS?

Насколько я понимаю," правильный "способ создания пользовательского класса Error в 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);

... трассировка покажет контекст созданного мной объекта ошибки во время компиляции быть прототипом MyError, а не объектом MyError, который я создал с помощью «new MyError ()».

Есть ли способ получить правильные данные обратной трассировки для фактической ошибки, а не прототип?

13
задан Evan P. 10 December 2011 в 19:39
поделиться