ホームページ  >  記事  >  ウェブフロントエンド  >  JS_javascript スキルでの例外処理メソッドの共有

JS_javascript スキルでの例外処理メソッドの共有

WBOY
WBOYオリジナル
2016-05-16 17:07:531651ブラウズ

js フォールト トレラント ステートメント。js エラーが発生した場合でも、エラーは表示されません (ブラウザーの右下隅に黄色の三角形の記号が表示されないようにするためです。そうしないと、ユーザー エクスペリエンスが低下します)

コードをコピーします コードは次のとおりです:

window.onerror=function(){return true;}



以下は、開発者が問題を見つけやすくするために JS 例外情報を取得するためのものです

1、試して...捕まえて...

コードをコピー コードは次のとおりです:


3、エラー時:

コードをコピー コードは次のとおりです:




js での例外処理

JavaScript で try...catch を使用して例外処理を行うことができます。例:

try { foo.bar();} catch (e) {alert(e.name ": " e.message);}
現時点で発生する可能性のあるシステム例外は主に以下の 6 種が含まれます:

EvalError: eval() のコードの実行中にエラーが発生したときに発生します
RangeError: 数値変数またはパラメータが有効な範囲外にあるときに発生します
ReferenceError: 無効な参照の参照を解除するときに発生します
SyntaxError: eval() でのコードの解析中に構文エラーが発生したときに発生します
TypeError: 変数またはパラメーターが有効な型ではないときに発生します
URIError: encodeURI() または decodeURI() に無効なパラメーターが渡されたときに発生します
上記の 6 つの例外オブジェクトはすべて Error オブジェクトから継承しています。これらはすべて、次の 2 つの構築メソッドをサポートしています:

new Error();new Error("Exception information");
手動で例外をスローする方法は次のとおりです:

コードをコピー コードは次のとおりです:

try {
throw new Error("Whoops!") ;}
catch (e) {
alert(e.name ": " e.message);}

例外情報のタイプを特定したい場合は、catch でそれを行うことができます:



コードをコピー コードは次のとおりです:

try {
foo .bar();
} catch (e) {
if (e instanceof EvalError) {
alert(e.name ":" e.message); else if ( einstanceof RangeError ) {
alert(e.name ": " e.message) }
// etc
}

エラーには次の主なプロパティがあります:

description: エラーの説明 (IE でのみ使用可能)。
fileName: エラーのファイル名 (Mozilla でのみ使用可能)。
lineNumber: エラーの行番号 (Mozilla でのみ使用可能)。メッセージ (IE でも同じ説明)
名前: エラーの種類。
番号: エラー コード (IE でのみ利用可能)。
スタック: Java のスタック トレースのようなエラー スタック情報 (Mozilla でのみ利用可能)。 🎜>エラー メッセージをよりよく理解するために、catch 部分を次の形式に変更できます:


try {
foo.bar( );
} catch(e) {
if (browserType != BROWSER_IE) {
alert("name: " e.name "message: " e.message "lineNumber: " e.lineNumber "fileName : " e .fileName "stack: " e.stack);
} else {
alert("name: " e.name "errorNumber: " (e.number & 0xFFFF) "message: " e.message "); } } "


JavaScript の throw コマンドは実際に任意のオブジェクトをスローでき、このオブジェクトを catch で受け取ることができます。例:

try {
throw new Date( ); // 現在の時刻オブジェクトをスローします} catch (e) { alter(e.toLocaleString()) // ローカル形式を使用して現在の時刻を表示します
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。