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...catch
try...finally
try...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