はJavaScriptに書式設定エラーを保存しません:カスタムエラーを投げることは、ログ<code>throw</code>のような組み込みのエラーを-ing
throw new Error("Something was wrong");
がきれいにテキストを表示 - あなたは、オブジェクトを投げた伝えることはできませんサブクラスError
オブジェクト(またはそのことについては他のエラーオブジェクト)でカスタムエラーを作成する場合しかし、スローされたエラーがコンソールで同じように表示されていない
。
だから、このコードを使用することにより:
var ImproperlyConfigured = function(message){
this.name ="ImproperlyConfigured";
this.message = message || "The object you tried to construct was improperly configured due to an unknown error";
}
ImproperlyConfigured.prototype = new Error();
次は、私は、オブジェクトのプロパティ(name
とmessage
)が示されているという事実を好きではない出力
です。実際には、私は理解していないことが好きではないなぜプロパティが表示されます。
私はちょっとグーグルで行きましたが、toString
メソッドを実装すると、このメソッドを使用すると、エラーの名前がもはや赤いパズルになっていないことがわかりました。
コード
var ImproperlyConfigured = function(message){
this.name ="ImproperlyConfigured";
this.message = message || "The object you tried to construct was improperly configured due to an unknown error";
this.toString = function(){
return this.message;
}
}
ImproperlyConfigured.prototype = new Error();
手動console.error
メソッドを使用していないことで、当然のことながら、カスタムエラーを使用することにより、標準探しエラーであり、 try...catch
ブロックにあります。
これは可能ですか?
Chromiumでコードを試したところ、[出力は正常でした](http://i.imgur.com/TPVpkHB.png)。どのソフトウェア/コンソールでテストしていましたか? –
デベロッパーコンソールは特定の標準に準拠しておらず、ほとんどの場合、必要な操作を行います。 – Pointy
@DenysSéguret私は現在[Google Chrome](https://www.google.com/chrome/browser/desktop/)を使用しています。バージョン49.0.2623.110 m – Adelin