MDN states:JavaScriptエンジンがコードを解析する際に、言語の構文に準拠していないトークンまたはトークンのために遭遇したとき構文エラーはJavaScriptに捕捉される可能性がありますか?
にSyntaxErrorがスローされます。
しかし、構文エラーがある場合、どのようにプログラムを実行することができますか?
JavaScriptシンタックスエラーはどのように捕捉できますか?
MDN states:JavaScriptエンジンがコードを解析する際に、言語の構文に準拠していないトークンまたはトークンのために遭遇したとき構文エラーはJavaScriptに捕捉される可能性がありますか?
にSyntaxErrorがスローされます。
しかし、構文エラーがある場合、どのようにプログラムを実行することができますか?
JavaScriptシンタックスエラーはどのように捕捉できますか?
それはのtry-catchでキャッチすることができ、実行時エラーではなく、構文エラーです(もしあなたがeval
あなたのコードあなたはevaledコードの構文エラーを処理することができますが、それはただ奇妙です)。
私はあなたがこれらを読んでお勧めします:
あなたはwindow.onerrorを使用して一部のブラウザでそれらを扱うかもしれませんがあなたはプログラマ、生成され、実行時例外をキャッチすることができますが、JavaScriptの構文エラーをキャッチすることはできません、。
これは私が大好きな本JavaScript- The Complete Reference by Thomas-Powell
から取られています。この本のコード例を参照することができます。
コード例がありますか?どのブラウザですか? – Pacerier
try-catch
ブロックを使用して、構文エラーが処理されている間に構文エラーを処理することはできません。
window.onerror
を使用するとエラーが発生していることがわかります。 onerror
関数は、エラーが存在する可能性のあるタグではなく、別のスクリプトタグで定義されていることを確認する必要があります。
例:
<script>
window.onerror = function (e) {
console.log('Error: ', e);
};
console.log('a'');
</script>
これは動作します:
<script>
window.onerror = function (e) {
console.log('Error: ', e);
};
</script>
<script>
console.log('a'');
</script>
エラーがスローされたときにスクリプトが実行を開始することはまだあるので
これは、動作しません
JSの世界では、SyntaxErrorは実行時例外である可能性があります。たとえば、JSON形式ではないJSON応答を解析しようとすると、これが発生する可能性があります。サーバーはたくさんの種類の応答を返すことができるので、あなたの要求にJSONが必要なHTML本文応答を送信すると、JSにはSyntaxError
がスローされます。このような場合、次のようなエラーメッセージが表示されます。SyntaxError: JSON Parse error: Unrecognized token '<'
。
しかし、他の実行時の構文エラーもあります。 Mozillaには、ここにいくつかのリストがあります:SyntaxErrors for JSON parsing
あなたのコードでこれをキャッチしたいかもしれません。
try {
JSON.parse('<html></html>');
} catch (e) {
console.log("I catch & handle all errors the same way.");
}
ORあなたは、具体的にSyntaxErrorを探すことができます:
try {
JSON.parse('<html></html>');
} catch (e) {
if (e instanceof SyntaxError) {
console.log("I caught a pesky SyntaxError! I'll handle it specifically here.");
} else {
console.log("I caught an error, but it wasn't a SyntaxError. I handle all non-SyntaxErrors here.");
}
}
Mozillaはinfo on JS errors and handling themさらに多くのを持っているあなたは、このような一般的なtry/catchブロックで行うことができます。
関連:http://stackoverflow.com/questions/12219154/ignore-javascript-errors-in-a-page-and-continue-executing-the-script –