saiko memo

じぶん用の技術メモ

try ... catch についての学習メモ

JavaScripttry ... catchについて今まで使う機会がなく、何も知らなかったので勉強してみたメモ。

結論から言うと、エラーが発生した場合でも処理を停止させないという特徴があるようです。

// 未定義の変数iによりエラーが発生する

// 通常の処理
const a = 1;
const b = a * i; // コンソールにエラー出力
console.log( 'hoge' ); // この行は実行されない

// try ... catchによる処理
const a = 1;
try {
  const b = a * i; // 例外が発生し、catchブロックに処理が移る
} catch (e) {
  console.error( e ); // エラー内容を引数で受取り、エラーを出力
}
console.log('hoge'); // 実行される

関数などに想定していない型の引数を渡される可能性があるが、エラーにより後続の処理を止めたくないといった場合に使うような感じでしょうか。

またthrowを使うことにより、意図的に例外を発生させることもできるようです。

function getNumber(x){
  if ( typeof x !== 'number' || isNaN(x) ) {
    throw new Error( 'Parameter is not a number.' ); // 引数が数値ではない場合に例外を発生させる。
  }
  return x;
}

try{
  getNumber( 's' ); // 例外発生により関数の実行が停止し、catchブロックに処理が移る。
} catch(e) {
  console.error(e); // エラー出力 'Error: Parameter is not a number.'
}

本当にざっくりですが、少し理解できてよかった。サイト制作で使う機会は来るのかな…