ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript_javascript スキルでの例外キャッチの概要

JavaScript_javascript スキルでの例外キャッチの概要

WBOY
リリース: 2016-05-16 16:23:12
オリジナル
1200 人が閲覧しました

Java 言語と同じように、JavaScript は throw ステートメントを通じて例外をスローできます。 Java 言語とは異なり、JavaScript はエラー オブジェクトだけでなく、throw ステートメントを通じてあらゆる種類の値をスローできます。


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

//Error オブジェクトをスローします。
試してみてください{
throw new Error("エラー オブジェクトのメッセージ");
}キャッチ(e){
console.log(e);//エラー: エラー オブジェクトのメッセージ
}

試してみましょう{
「生のメッセージ」をスローします;
}キャッチ(メッセージ){
console.log(message);//生のメッセージ
console.log(メッセージの種類);//文字列
}

試してみましょう{
42 をスローします;
}キャッチ(コード){
console.log(code);//42
console.log(コードの種類);//数値
}


Java 言語と同様、どの catch ステートメントでも例外がキャッチされない場合、例外は最終的にユーザーにスローされます:


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

試してみてください{
//throw new Error("test error");//エラー: テストエラー
がスローされます。 }ついに{
}

試してみましょう{
throw 42;//エラー: 42
がスローされます。 }ついに{
}


スローされた例外をキャッチするために、JavaScript は try/catch/finally ステートメントも使用します。使用規則は次のとおりです。try は必須であり、catch とfinally はオプションのステートメントですが、catch とfinally のうち少なくとも 1 つは指定する必要があります。

catch ステートメントでは、スローされた例外値を格納するパラメーター e (またはその他の有効な変数名) を定義できます。 catch ステートメント内では、このパラメータをローカル変数として使用できます。 JavaScript での他の変数の使用法とは異なり、catch ステートメント内のパラメーター変数は catch ステートメント内でのみ有効です (変数のスコープは catch ステートメントに限定されます)。

finally ステートメントの場合、try でスローされた例外があるかどうかに関係なく、finally のコードが実行されます。詳細は次のとおりです:

1. try ステートメントが実行されると例外は発生しません。finally のコードが実行されます。
2. try では例外は発生しませんが、break、 continue、return ステートメントの実行により try コードが終了すると、finally のコードが実行されます。
3. try で例外が発生しました。catch ステートメントによって例外が処理された後、finally のコードが実行されます。
4. try で例外が発生したが、catch ステートメントがないために例外を上向きにスローし続ける必要がある場合、最終的に のコードが実行されます。 catch ステートメントがない場合、JavaScript は最初にコードを実行し、その後例外をスローし続けることに注意してください。

finally コードで、break、 continue、または return ステートメントが出現すると、たとえ catch ステートメントが存在しなくても、JavaScript は try コード内に存在する可能性のある Break、 continue、または return ステートメントに関係なく、これらのステートメントを直接実行します。例外が発生すると、JS は例外レポート情報も破棄し、finally コード内の Break、Continue、または return ステートメントの実行を続行します。同様に、finally コードでも例外がスローされた場合、JavaScript は try コード内のすべての Break、 continue、または return ステートメントを破棄し、考えられる例外レポート動作も破棄して、finally コードでのみ例外をスローします。

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