1. window.onerror を使用してエラー処理関数を指定します。 エラーが発生した場合、onerror がコールバックされます。 JavaScript ブロックに複数のスクリプト エラーがある場合、最初のエラーがトリガーされた後 (コールバック)、現在の JavaScript ブロックに続くスクリプトは自動的に削除および無視され、実行されません。
例:
テスト ">
window.onerror = function(message, url, line)
{
alert("Error.nMessage:" message "nUrl:" url "nLine:" line)
return true ;
}
🎜>
上記の例では、各ブロックの最初の test(); だけがエラーを生成します。 window.onerror コールバックがトリガーされると、次の Javascript は無視されます。 img は、onerror < img src="pic.gif" onerror = "javascript:alert("エラーが発生しました。");"/> もサポートしています。 onerror はブラウザでサポートされているオブジェクトです。使用できるかどうかは DOM 標準ではなくブラウザーが決定します。
2. Javascript で try catch throw を使用して例外を処理します。
JavaScript は try catch throw をサポートし、JavaScript で定義された例外をサポートします。
(1)EvalError: eval() 関数でエラーが発生します。
(2)RangeError: 数値が or より大きいです。 Javascript で表現できる数値 (Number.MAX_VALUE および Number.MIN_VAKUE) より小さい
(3)ReferenceError: 不正な参照が使用されています。
(4)SyntaxError: eval 内で構文エラーが発生しました。 () 関数呼び出し。他のすべての構文エラーはブラウザによって処理され、
(5)TypeError で変数の型がエラーになります。 encodeURI() または decodeURI() 関数。
例:
コードをコピー
コードは次のとおりです。 >
Error.message は、IE と FireFox の両方でサポートされているプロパティです。
IE は、説明と数値属性をサポートしています。
FF は、fileName lineNumber および stack 属性をサポートします。
JavaScript は型付けが弱い言語だからです。
したがって、catch 部分で catch できるのは 1 回だけです。C# のように、さまざまな種類の例外をキャッチするために複数の catch を記述することはできません。
ただし、instanceof ErrorType を使用して同様の機能を実現できます。
例:
注: ブラウザーは Error タイプの例外をスローしないため、Error タイプの例外がキャッチされた場合、その例外はブラウザーではなくユーザー コードによってスローされたと判断できます。