【93】エラーを無視するな

ピート・グッドリフ(Pete Goodlife)

 ある夜、私は、バーに向かって街を歩いていました。友人たちと会うことになっていたのです。彼らと一緒に飲むのも久しぶりだったので、楽しみにしていました。でも早く行かねばと焦り、周りがよく見えていなかったのでしょう。縁石につまずいて、見事に転んでしまいました。注意力散漫だったわけですから、まあ自業自得です。

 脚が痛みましたが、早く友達に会いに行かねばと思っていたので、立ち上がり、歩き続けました。しかし、歩くほどに、痛みがひどくなってきます。はじめのうちは転んだショックの方が大きく、よくわかっていなかったのですが、どうもこれは、ただごとではないぞという痛みでした。

 私はそれでも構わずバーへと急ぎました。着く頃には、痛みは激痛になっていました。痛みにばかり気を取られ、せっかく来たのに結局はあまり楽しめませんでした。朝になって医者に行ってみると、脚の骨が折れているとの診断です。痛みを感じた時、そこで止まっていれば、歩き続けなければ、もっと軽く済んだでしょう。それは私のこれまでの人生で最悪の朝でした。

 実を言えば、コードを書くときに同じようなことをしているプログラマはとても多いのではないかと思います。

エラーが起きているのに、大したことはないと思い込もうとする。大丈夫だと自分に言い聞かせて無視する。 そんなことをしても何も良いことはないのです。これでは品質の高いコードはとても書けないでしょう。これは単なる怠惰(良い「怠惰」ではなく、ひどい方の「怠惰」)です。たとえどんなに問題の起きにくいコードでも、エラーチェックとエラーハンドリングは常に必要です。省略しても時間の節約には決してなりません。後でもっと大きな問題が起きる原因を作っているだけです。

 コードからエラーを通知する方法は数多くあります。その例をいくつか挙げておきましょう。

 エラーが起きているのに、無視する、見て見ぬふりをする、何も起きていないことにする、そういう態度では、リスクが非常に大きくなってしまいます。私が痛みを感じても歩き続け、脚の状態を悪化させてしまったのと同じです。警告を無視して進むと、事態が余計に面倒になってしまうのです。問題の存在を察知したら、できるだけ早く対処すべきです。先延ばしは禁物です。

 エラーを放置すると、次のようなことが起きます。

 自分の書いたコードから発生し得るエラーを丹念にチェックするだけでなく、発生し得るエラーとその条件をインタフェースに明示しましょう。エラーを隠蔽し、何も問題なく動いているかのように見せかけてはいけません。

 なぜエラーチェックをしないのでしょうか? やらない理由(言い訳)も色々あるので、その例を以下に挙げておきます。「自分に当てはまる」というものがあるでしょうか。なぜ、この言い訳が通用しないかわかるでしょうか。