JavaScript #10 例外処理

2020年12月13日

今回はJavaScriptの例外処理に関して見ていこうと思います。
例外処理は多くの言語で実装されているtry-catchの構文と同じような書き方となります。書き方としては以下のような形となります。

構文の基本

例外が発生しそうなものはtry句の中に記述し、例外が発生したときの処理はcatch句、例外が起きても起きなくても必ず実行したい処理はfinally記述します。finally句に関しては必ず実行したいものがない場合は省略することができます。

try {
   //例外が発生しそうな処理
 } catch (e) {
      //例外が発生した場合の処理
 } finally {
         //必ず実行される処理
}

使い方

それでは具体的に書いて確認してみましょう。以下は、変数の値が文字列でない場合は、例外を発生する簡単なものです。変数mojiに数値の9を代入して、typeofで型を判定しています。変数mojiは数値型のデータのため例外が発生し、判定式で例外をthrowでError投げ、catch句でその例外内容変数eとして受け取っています。

const moji = 9;

try{

  if(typeof(moji) !== 'string'){
    console.log(moji + 'は文字列ではありません。');
    throw new Error('変数mojiには文字列をいれてください。');
  }

}catch(e){
  console.log(e)
}

例外処理を効率的に使うことで、デバッグのしやすいコードを書くことができます。
特にJavaScirptではWebで使うことが多く、Webページからユーザが入力したデータが文字列か数値の型判定や、Webサーバが応答しない場合などの想定内のエラーに柔軟に対処するコードが必要となってきます。
エラーが発生した場合に安全にプログラムを止めることが必要となるので、例外処理は外部要因(ユーザ操作、サーバの稼働状態)などプログラムの実行時に意図しない事象に対応することができます。
一方、どれもこれも例外処理を書いてしまうとコードの量や処理が遅くなってしまうので、あくまでもプログラムが外部起因などプログラム自信が対処できない場所に使ったほうが良いと思います。

簡単ですが、例外処理に関してまとめてみました。

Program

Posted by Qtaro