Java Languageと同様に、JavaScriptはスローステートメントを通じて例外をスローできます。 Java言語とは異なり、JavaScriptは、エラーオブジェクトをスローするだけでなく、スローステートメントを通じてすべてのタイプの値をスローすることができます。
コードコピーは次のとおりです。
//エラーオブジェクトを投げます。
試す{
新しいエラーをスローします(「エラーオブジェクトのメッセージ」);
} catch(e){
console.log(e); //エラー:エラーオブジェクトのメッセージ
}
試す{
「生のメッセージ」を投げる;
} catch(message){
console.log(message); // rawメッセージ
console.log(typeof message); // string
}
試す{
42を投げる;
} catch(code){
console.log(code); // 42
console.log(typeof code); // number
}
Java言語のように、例外がCACTステートメントによってキャッチされていない場合、例外は最終的にユーザーにスローされます。
コードコピーは次のとおりです。
試す{
//新しいエラー( "テストエラー"); //エラーがスローされます。エラー:テストエラー
} ついに{
}
試す{
42; //エラーがスローされます。エラー:42
} ついに{
}
キャッチスローの例外のために、JavaScriptはTry/Catch/最終的なステートメントも使用します。使用規則は次のとおりです。試行が必要であり、キャッチされ、最終的にオプションのステートメントですが、少なくとも1つはキャッチされ、最終的に表示されなければなりません。
キャッチステートメントでは、パラメーターE(またはその他の法的変数名)を定義して、スローされた外れ値を保存できます。 Catchステートメント内では、このパラメーターはローカル変数として使用できます。 JavaScriptの他の変数使用法とは異なり、CATCHステートメントのパラメーター変数はCATCHステートメント内でのみ有効です(この変数の範囲はCATCHステートメントに限定されます)。
最終的にステートメントの場合、試行にスローされた例外があるかどうかに関係なく、最終的にコードが実行されます。詳細は次のとおりです。
1. Tryで例外が発生しません。 TRYステートメントが実行されると、最終的にコードが実行されます。
2. Tryで例外はありませんが、Break、Continue、またはReturn Statementの実行のためにTryコードが終了すると、最終的にコードが実行されます。
3. Tryで例外が発生します。例外がCACTステートメントによって処理された後、最終的にコードが実行されます。
4. TRYで例外が発生しますが、CACTステートメントがないために例外を投げかける必要がある場合、最終的にコードが実行されます。 Catchステートメントが欠落している場合、JavaScriptが最初にコードを最終的に実行し、その後例外を上向きにスローし続けることは注目に値します。
最終的にコードでは、break、継続、または戻りステートメントが表示された場合、JavaScriptはこれらのステートメントを直接実行し、TRYコードに存在する可能性のあるステートメントを破る、継続、または返すことを無視します。 Catchステートメントが欠落していても、報告する必要がある例外になります。JSは、例外報告情報を破棄し、最終的にコードでブレーク、継続、または返信ステートメントを実行し続けます。同様に、最終的なコードに例外がスローされた場合、JavaScriptはすべてのブレークを破棄し、TRYコードのステートメントを継続または返し、可能な例外報告動作を破棄し、最終的なコードに例外のみを投げます。