[TypeScript] エラー処理/例外処理の3つの方法

typescript-error-handling
INDEX

はじめに

本書籍でError処理/例外処理について学びました!
その結果を記録します。

programming_typescript

結論

  • 単純にErrorを知らせる事を求めるなら = nullを返す
  • なぜ失敗したのかについてより多くの情報を求めるなら = 例外をスローする/例外を返す
  • 起こり得るすべての例外情報を強く望むなら = 例外を返す
  • 少ない記述で例外処理を求めるなら = 例外をスローする

1. nullを返す

型安全な方法でエラーを処理するために最も軽量な方法

複数の操作を組み立てが困難になる
エラーの有無しかわからない(発生理由までは追加で調査要)
冗長になりやすい

const parse = (birthday: string): Date => {
  let data = new Date(birthday);
  if (isVaild(birthday)) {
    return null;
  }
  return data;
}

2. 例外をスローする

nullを返すより、より簡単にデバックが可能
特定の失敗モードを処理が出来る

標準的なエラーオブジェクトから選び必要がある(カスタマイズが難しい)

const parse = (birthday: string): Date => {
  let data = new Date(birthday);
  if (isVaild(birthday)) {
    throw new RangeError('Enter a data in the form YYYY/MM/DD');
  }
  return data;
}

3. 例外を返す

エラー処理を自作するため、開発者が求めている情報が得られやすい

自作する為、開発コスト高

/**
* @throw {InvaildDateFormatError) ユーザーが誕生日を誤って入力した
*/

const parse = (birthday: string): Date | InvaildDateFormatError => {
  let data = new Date(birthday);
  if (isVaild(birthday)) {
    return new InvaildDateFormatError('Enter a data in the form YYYY/MM/DD');
  }
  return data;
}
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

Born in 1994
Engineer's career is from 2020.10
Skill: Next.js, TypeScript, Django, Python, HTML, CSS

INDEX