JavaScriptでカスタムErrorクラスを作成する「正しい」方法についての私の理解は次のようなものです。
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);
...バックトレースには、コンパイル時に作成したErrorオブジェクトのコンテキストが表示され、「new MyError()」で作成したMyErrorオブジェクトではなく、MyErrorのプロトタイプになります。
プロトタイプではなく、実際のエラーの正しいバックトレースデータを取得する方法はありますか?