7章エラー処理

物理学者、構造技術者、プログラマーの3人が、アルプスの急な山道を車で走っていたときに、ブレーキが壊れた。車は速度を上げ、彼らはカーブを曲がることに四苦八苦していた。一度か二度、薄っぺらいガードレールのおかげで、山の斜面を転げ落ちずに済んだ。このままでは死ぬと全員が覚悟したが、そのとき突然、エスケープレーン†1が現れた。彼らはそこに車を寄せ、安全に停車することができた。

物理学者は言った。「ブレーキパッドの摩擦と、結果として生じる温度の上昇とをモデル化し、なぜブレーキが故障したのかを確かめる必要がある。」

構造技術者は言った。「トランクにスパナが何本かあったはずだ。ブレーキを調べて、どこが壊れているか確かめよう。」

プログラマーは言った。「再現可能かどうか確かめてみたらどうだろう?」

—— 作者不明

[†1] 訳注:ブレーキに問題のある車両を安全に停止させるために設けられた、砂や砂利が敷き詰められた車線。

TypeScriptは、実行時例外をコンパイル時に発覚させるために、できることはすべて行います。TypeScriptが提供する豊富な型システムから、それが実行する強力な静的およびシンボリックな解析に至るまで、金曜の夜を、スペルミスした変数やnullポインター例外のデバッグに費やさなくてもいいように(また、当直の同僚が大叔母の誕生日パーティーに遅れずに済むように)、TypeScriptは懸命に働きます。

残念なことに、どの言語を使ってプログラムを書こうと、実行時例外が(開発時に見つからずに)すり抜けてしまう場合があります。TypeScriptはそれを防ぐことが得意ですが、それでも、ネットワークやファイルシステムの障害、ユーザー入力の解析エラー、スタックオーバーフロー、メモリー不足のエラーのようなものは防ぐことができません。TypeScriptが実際に行うのは——その豊富な型システムにより——実行時エラーに対処する多くの方法を提供し、最終的にうまくいくようにすることです。 ...

Get プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.