ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 例外処理ステートメントに関する簡単な説明_JavaScript スキル

JavaScript 例外処理ステートメントに関する簡単な説明_JavaScript スキル

WBOY
リリース: 2016-05-16 15:52:26
オリジナル
1519 人が閲覧しました

プログラムの実行中にエラーは必ず発生し、エラー後の実行結果は正しくないことが多いため、実行中にエラーが発生したプログラムは通常強制終了されます。実行時エラーは総称して例外と呼ばれ、エラーが発生したときに処理する機会を得るために、JavaScript には例外処理ステートメントが用意されています。 try-catch、try-catch-finally、throw が含まれます。

try-catch ステートメント

try{
tryStatements
}
catch(exception){
catchStatements
}
ログイン後にコピー

パラメータの説明:
tryStatements: 必須。エラーが発生する可能性のある一連のステートメント。
例外: 必須。エラーが発生したときにエラー オブジェクトを参照するために使用される変数名。
catchStatements: オプション。エラー処理ステートメント。tryStatements で発生したエラーを処理するために使用されます。
コーディングの際、通常、エラーが発生する可能性のあるステートメントは try ブロックの中括弧内に記述され、エラーは後続の catch ブロックで処理されます。エラー情報はエラー オブジェクト (Error オブジェクト) に含まれており、例外参照を通じてアクセスできます。エラーオブジェクトのエラー情報を基に対処方法を決定してください。

<script type="text/javascript">
try{
var n = error; //人为引发一个错误,error未定义就使用
}
catch(e){
alert((e.number&0xFFFF) + "号错误:" + e.description); //错误处理:仅输出错误信息
}
</script>
ログイン後にコピー

このコード スニペットは、try-catch 構造を使用してプログラムの実行時エラーを処理し、4 行目で人為的にエラーを発生させます。 6 ~ 9 行目の catch ブロックはエラーをキャッチして処理します。
ヒント: JavaScript エラーは実行時エラーと構文エラーです。構文エラーはコンパイル段階で検出されますが、エラー処理ステートメントは実行時エラーのみを処理できます。

try-catch-finally ステートメント

try{
tryStatements;
}
catch( exception ){
handleStatements;
}
finally{
fianllyStatements;
}
ログイン後にコピー

パラメータの説明:
tryStatements: 必須、例外を引き起こす可能性のあるステートメント。
handleStatements: オプションの例外処理ステートメント。
fianllyStatements: オプション。他のプロシージャの実行後に無条件に実行されるステートメント。
エラーが発生しない場合でも、finally ブロック内のステートメントは最後に実行され、通常はリソース クリーンアップ コードがここに配置されます。
Apple 名を含む配列を走査しているときに例外が人為的にスローされます。

<script type="text/javascript">
try{
var fruit = new Array("鸭梨","苹果","葡萄","李子");

for( n=0;n<fruit.length;m++)
{
document.write(fruit[n] + "");
}
}
catch( e )
{
alert( (e.number&0xFFFF) + "号错误:" + e.description );
}
finally{
fruit = null;
alert("fruit="+fruit+"已经断开fruit数组的引用!");
}
</script>

ログイン後にコピー

このコード スニペットの 5 行目では、未定義の変数 m が使用され、人為的に例外がトリガーされます。 11 行目から 13 行目は例外をキャッチして処理します。 14 行目から 18 行目のfinally ブロックは、フルーツ配列によって占有されているリソースがリークされないように、無条件で実行されます。

スローステートメント

複数の例外処理ステートメントをネストできます。複数の構造がネストされている場合、内部層の try-catch ステートメントは、例外自体を処理するつもりがない場合に例外をスローする可能性があります。親の try-catch ステートメントは、子によってスローされた例外を受け取ることができ、スロー操作には throw ステートメントが使用されます。
式をスローします;
式の値はエラー メッセージ オブジェクトとして渡され、catch ステートメントによってキャプチャされます。 throw ステートメントは、例外をスローする場所であればどこでも使用できます。
通常、0 を除数として使用することはできないため、例外を定義して、除数が 0 の場合にそれをスローできます。

<script>
try{
var dividend = 100; //被除数
var parts = 0; //除数
if( parts == 0){ //如果除数为0则抛出异常
throw "Error:parts is zero"; //抛出异常
}
alert("每人" + dividend/parts + "份"); //输出提示信息
}
catch(e){ //此处将捕获try块中抛出的异常
alert(e); //用对话框输出错误对象的信息
}
</script>
ログイン後にコピー

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート