try...catch...finally文
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【try...catch...finally文の使い方】
try...catch...finally 文を使用すると、 try ブロックの中で例外がスローされたかどうかに関わらず、必ず最後に実行する処理を記述することができます。
・書式
try{ 例外が発生する可能性がある文を記述 ・・・ } catch(e) { 例外をキャッチしたときに実行される処理 ・・・ } finally { 最後に実行される処理 ・・・ }
try ブロックや catch ブロックの中で retnrn 文や break 文などが実行されて処理が try...catch...finally 文から別のところへ移動する場合であっても、移動が行われる前に実行されます。
サンプル文
function sum(a, b){ let sum; try{ sum = a + b; } catch(e) { console.error(e); return null; } finally { console.log('Finally!'); } return sum; } console.log('Start'); console.log(sum(10, 8)); console.log(sum(10, 8n)); console.log('End'); 実行 > Start > Finally! > 18 > TypeError: Cannot mix BigInt and other types, use explicit conversions > Finally! > null > End
例外がスローされる可能性のある文を try ブロック内に記述し、例外をキャッチした場合の処理を catch ブロック内に記述しています。
そして例外をキャッチするかどうかに関わらず最後に実行する処理を finally ブロック内に記述しています。
また、catchがないtry...finallyも書式として、問題ない
try{ 例外が発生する可能性がある文を記述 ・・・ } finally { 最後に実行される処理 ・・・ }
ただ catch がない場合は例外をキャッチすることができませんので、 例外がスローされた場合はプログラムが強制終了します
※コメント投稿者のブログIDはブログ作成者のみに通知されます