JavaScript で catch を使わない try
今日の記事では、JavaScript で catch を実装せずに try ステートメントについて説明します。
JavaScript で Catch なしで Try
JavaScript の try ブロックは、例外をスローする可能性のあるコードを囲むために使用されます。メソッド内で使用する必要があります。
特定のステートメントで例外が発生した場合は、catch ステートメントでキャッチする必要があります。
構文:
try {
try_statements
/* Code to executed */
} catch (exception_var) {
catch_statements
/* Handle exception */
} finally {
finally_statements
/* Final Code/Clean variables */
}
try_statementsは実行されるステートメントです。catch_statementsは、tryブロックで例外がスローされたときに実行されるステートメントです。exception_varは、関連付けられたcatchブロックの例外オブジェクトを含むオプションの識別子です。finally_statementsは、テストステートメントの完了後に実行されるステートメントです。これらのステートメントは、例外がスローされたかキャッチされたかに関係なく実行されます。
try ステートメントは、1つ以上のステートメントを含む try ブロックで構成されます。 {} は、単一のステートメントであっても、常に使用する必要があります。
catch ブロックまたは finally ブロックが存在する必要があります。これにより、try ステートメントの 3つの組み合わせが得られます。
try...catchtry...finallytry...catch...finally
catch ブロックには、try ブロック内で例外がスローされたときに同時に実行することを指定するステートメントが含まれています。try ブロック内(または try ブロックから呼び出された関数内)のステートメントが例外をスローした場合、制御はすぐに catch ブロックに切り替わります。
try ブロックで例外がスローされない場合、catch ブロックは無視/スキップされます。
finally ブロックは、try および catch ブロックの実行が終了した後に常に実行されます。例外がスローされたかスタックしたかに関係なく、finally ブロックは通常、その内部のステートメントを使用して実行されます。
1つ以上のテストステートメントをネストできます。内部の try ステートメントにエラーを処理するための catch ブロックがない場合は、代わりに、囲んでいる try ステートメントの catch ブロックが使用されます。
try ステートメントを使用して、JavaScript の例外を処理することもできます。例外がスローされると、catch ブロックが例外を処理しなくても、finally ブロックのステートメントが最終的に実行されます。
try...catch の詳細については、try...catch のドキュメントをご覧ください。
次の例でそれを理解しましょう。
try {
console.log('Executing try block')
throw new Error(0 / 0)
} finally {
console.log('Final Call')
}
上記の例では、catch なしで try を定義しました。0 を 0 で割ってエラーをスローします。
catch ブロックがないために finally ブロックがキャッチしない NaN エラーをスローし、finally ブロック内に"Final Call"ステートメントを出力します。これらのブロックを使用して、必要なアクションを実行し、finally ブロック内の未使用の変数/リソースをクリーンアップすることもできます。
JavaScript をサポートする任意のブラウザで上記のコードスニペットを実行してみてください。以下の結果が表示されます。
Executing try block
Final Call
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn