プログラミングを始めたばかりの頃、画面が真っ白になったり、コンソールに真っ赤なエラーメッセージが表示されて動かなくなったりして、冷や汗をかいたことはありませんか?実は、エラーが発生することは「悪」ではありません。大事なのは、エラーが起きた時にプログラムがそこで停止せず、適切に処理を継続させる「転び方」を身につけることです。そのために不可欠なのが「try…catch」という仕組みです。
try…catchは「とりあえず試して、ダメならこうする」という保険
プログラミングにおいて、エラーは「予測できない未来」からやってきます。例えば、外部から取得しようとしたデータが空っぽだったり、存在しない画像ファイルを読み込もうとしたりする場合です。
try…catchの使い方は、とてもシンプルです。
try {
// ここに「失敗するかもしれない処理」を書く
} catch (error) {
// ここに「失敗した時のフォロー」を書く
}
このように、エラーが起きそうなコードをtryブロックで囲み、もしエラーが発生したら、即座にcatchブロックへ飛んで処理を切り替えるという流れを作ります。これだけで、プログラム全体が崩壊するのを防ぐことができます。
具体的な事例:APIからのデータ取得
例えば、Webサイトで天気予報を表示する場合を考えてみましょう。通常、プログラムは外部のサーバーからデータを取得しますが、相手のサーバーがダウンしていると、プログラムはそこでエラーを吐いて止まってしまいます。
ここでtry…catchを使います。
try {
const data = await fetchWeather();
display(data);
} catch (error) {
console.error(“データの取得に失敗しました”, error);
showErrorMessage(“ただいま天気を表示できません。少し待ってから再試行してください。”);
}
このように書くことで、ユーザーに対して「エラーで画面が停止しました」と伝えるのではなく、「今は表示できません」という親切なメッセージを返すことができます。これが、ユーザー体験を損なわないための「優しいエラーハンドリング」です。
エラーを「無視」するのは一番の禁じ手
初心者の方がやってしまいがちなのが、catchブロックの中を空にしてしまうことです。
catch (error) {
// 何もしない
}
これだと、何が起きたのか全く分からず、後からバグを見つけるのが非常に困難になります。必ずconsole.error(error)などでエラーの内容を出力するようにしましょう。
エラーを恐れる必要はありません。むしろ、エラーが起きることを前提に「どうリカバリーするか」を設計できるエンジニアこそが、信頼性の高いシステムを作れるプロフェッショナルです。まずは、あなたのコードの少し不安な部分を、try…catchで優しく包んでみることから始めてみてください。