これまで肉体労働を中心に働いてきたが、キャリアチェンジを決意し、未経験からIT企業への転職が決まった。
入社前学習としてTypeScriptを勉強する中で、頻繁に目にするようになったのが try/catch だ。
エラーが出たときに使う、というのは何となく分かる。
しかし実際には、
「どこに書けばいいのか分からない」
「そもそもエラーってそんなに起きるのか?」
と疑問に感じていた。
この記事では、初心者目線で try/catchの役割と使いどころ を整理し、
「なぜ必要なのか」「どんな場面で使うのか」を理解できるように解説していく。
try/catchとは何をする構文なのか
try/catchは、エラーが発生する可能性のある処理を安全に実行するための構文だ。
基本的な形はとてもシンプルである。
try {
// エラーが起きるかもしれない処理
} catch (error) {
// エラーが起きたときの処理
}
通常、JavaScriptやTypeScriptではエラーが発生すると、その時点で処理が止まる。
しかしtry/catchを使うことで、処理を止めずに別の対応をさせることが可能になる。
これは、ユーザー体験やシステムの安定性を保つために重要な仕組みだ。
try/catchが必要になる具体的な場面
学習を進める中で、try/catchが必要になる場面は意外と多いと感じた。
代表的なのが、以下のような処理だ。
- API通信(fetch)
- JSONの変換
- 外部データを扱う処理
たとえば、API通信では「通信失敗」「不正なレスポンス」など、自分では制御できない要因が存在する。
こうした処理をそのまま書くと、エラーが出た瞬間にアプリ全体が止まってしまう。
try/catchは、こうした 不確実な処理を包むための安全装置 だと理解すると分かりやすい。
async/awaitとtry/catchの関係
TypeScript学習で必ず登場するのが、async/awaitとtry/catchの組み合わせだ。
async function getData() {
try {
const res = await fetch("/api/data");
const json = await res.json();
return json;
} catch (error) {
console.error(error);
}
}
awaitを使った非同期処理では、内部でエラーが発生しても見た目では分かりにくい。
そのため、awaitを使う場合はtry/catchをセットで使うのが基本になる。
最初はお決まりの書き方に見えるが、
「失敗したときの処理ルートを明示している」
と考えると納得しやすくなった。
try/catchで何でも囲めばいいわけではない
初心者の頃は、「とりあえずtry/catchで囲めば安心」と思っていた。
しかし学習を進めると、これは少し違うと感じるようになった。
try/catchは、
エラーが起きる可能性が高く、かつ回復処理が必要な箇所
に使うべきだ。
単なる文法ミスや型エラーは、TypeScriptの型チェックで防ぐのが本来の役割になる。
すべてをtry/catchで包むと、逆に
「どこで何が起きているのか分からないコード」
になってしまう。
catchで何を書くべきか
catchの中では、必ずしも複雑な処理を書く必要はない。
初心者のうちは、
- エラーをログに出す
- ユーザーに分かりやすいメッセージを表示する
これだけでも十分だと感じている。
catch (error) {
console.error("処理に失敗しました", error);
}
try/catchは「エラーを隠すもの」ではなく、
エラーを正しく扱うための仕組みだという点が重要だ。
try/catchを学んで変わった意識
それまでの自分は、エラーが出ると「失敗した」と感じていた。
しかしtry/catchを理解してからは、
「エラーは起きる前提で設計するもの」
という考え方に変わった。
これは、プログラミングだけでなく、
これまでの肉体労働とは違う働き方や考え方に触れている実感でもあった。
まとめ
try/catchは、単なる文法ではなく 考え方を変えるための仕組みだと感じている。
- エラーは必ず起きるもの
- 起きたあとにどう振る舞うかが重要
- async/awaitとセットで理解する
この視点を持てるようになったことで、TypeScriptのコードも読みやすくなった。
未経験からのIT転職で不安は多いが、
こうして一つずつ理解を言語化しながら学ぶことで、
少しずつ「分かる」「書ける」が増えている。
今後も学習の中でつまずいたポイントを、記事として記録していく予定だ。

コメント