Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 17:エラー処理:try-catch構文

JavaScriptのtry...catch文に関する説明として、正しいものはどれですか?

  1. try節内でエラーが発生した場合、そのエラーはcatch節に渡され、後続のtry節内の処理はスキップされる
  2. catch節はtry節の前に必ず記述しなければならず、順序を入れ替えることはできない
  3. try...catch文はエラーが発生しない場合、catch節の中身が必ず一度は実行される
  4. try節内でエラーが発生すると、プログラム全体が即座に強制終了し、catch節は無視される
  5. try...catch文はPromiseの非同期処理エラーを検知することができず、同期処理専用の構文である

Qraftユーザーの成績:難易度 Bランク(レーティング1201)・正答率 58%(7/12回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:try節内でエラーが発生した場合、そのエラーはcatch節に渡され、後続のtry節内の処理はスキップされる

try節内でエラーが発生すると、その時点でtry節の残りの処理は実行されず、制御はcatch節に移ります。

【正解の理由】
try...catch文はエラーが起きた瞬間に処理を中断してcatch節へジャンプする仕組みです。これにより、エラー発生後の不要な処理の実行を防げます。

【不正解の理由】
• 「catch節はtry節の前に記述する」:構文上catch節はtry節の後に書く必要があり、順序を入れ替えることはできない
• 「エラーが発生しない場合もcatch節が必ず実行される」:エラーが発生しなければcatch節は実行されず、try節の処理がそのまま完了する
• 「エラー発生でプログラム全体が強制終了しcatch節は無視される」:try...catchはまさにその強制終了を防ぐための仕組みであり、説明が矛盾している
• 「Promiseの非同期エラーを検知できず同期専用」:await式と組み合わせることでtry...catchは非同期処理のエラーも捕捉できる

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)