仕事ですぐに使えるTypeScriptを読んでいくその18

これは

TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。

参考

著作権者:フューチャー株式会社(Future Corporation)様

future-architect.github.io

例外処理

今日は例外処理4日目をやっていきます。

例外処理とコードの読みやすさ

昨日はErrorクラス以外にもある例外のためのクラスについてでした。
今日は例外処理とコードの読みやすさについてです。

try 節はなるべく狭くする

便利なtry-catchだが、tryのなかにたくさんのlogicが定義されていた場合
どこで発生したエラーかわかりにくくなってしまう。
catchさせるエラーをIDつけてリターンさせたり、適切な振り分けができたら ある程度長くても良さそうな気もするけど、その辺はもう少し見ないとわからない。

// だらっと処理をさせてるとわからなくなる
try {
   const data = await getData();
   const modified = modify(data);
   const update = update(modified);
   const insert = insert(update);
} catch (e:Error) {
    // エラーだった場合の処理
}

// 例外発生しそうな場所にだけtry-catchをセットする
const data = await getData();
const modified = modify(data);
try {
   const update = update(modified);
} catch (e:Error) {
    // エラーだった場合の処理
}
const insert = insert(update);
Error以外をthrowしない

throwにはError関連のクラス以外にも数値や文字列を投げれる機能がある。
けれども基本的にはthrowはError関連で使われるものなので、それ以外で使うようなことは避けた方が良い。
TypeScriptならではなのだろうか。Error関連以外をthrowしたい場面ってあるものなのかな。

今日はここまで。