7章エラー処理
物理学者、構造技術者、プログラマーの3人が、アルプスの急な山道を車で走っていたときに、ブレーキが壊れた。車は速度を上げ、彼らはカーブを曲がることに四苦八苦していた。一度か二度、薄っぺらいガードレールのおかげで、山の斜面を転げ落ちずに済んだ。このままでは死ぬと全員が覚悟したが、そのとき突然、エスケープレーン†1が現れた。彼らはそこに車を寄せ、安全に停車することができた。
物理学者は言った。「ブレーキパッドの摩擦と、結果として生じる温度の上昇とをモデル化し、なぜブレーキが故障したのかを確かめる必要がある。」
構造技術者は言った。「トランクにスパナが何本かあったはずだ。ブレーキを調べて、どこが壊れているか確かめよう。」
プログラマーは言った。「再現可能かどうか確かめてみたらどうだろう?」
—— 作者不明
[†1] 訳注:ブレーキに問題のある車両を安全に停止させるために設けられた、砂や砂利が敷き詰められた車線。
TypeScriptは、実行時例外をコンパイル時に発覚させるために、できることはすべて行います。TypeScriptが提供する豊富な型システムから、それが実行する強力な静的およびシンボリックな解析に至るまで、金曜の夜を、スペルミスした変数やnullポインター例外のデバッグに費やさなくてもいいように(また、当直の同僚が大叔母の誕生日パーティーに遅れずに済むように)、TypeScriptは懸命に働きます。
残念なことに、どの言語を使ってプログラムを書こうと、実行時例外が(開発時に見つからずに)すり抜けてしまう場合があります。TypeScriptはそれを防ぐことが得意ですが、それでも、ネットワークやファイルシステムの障害、ユーザー入力の解析エラー、スタックオーバーフロー、メモリー不足のエラーのようなものは防ぐことができません。TypeScriptが実際に行うのは——その豊富な型システムにより——実行時エラーに対処する多くの方法を提供し、最終的にうまくいくようにすることです。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access