2016年06月10日

17年も気づかなかったプログラムのエラー

 オーツは自分のやりたい処理のためにパソコン上でプログラムを組んで使っています。
 その中で、比較的長く愛用しているものの一つにメール送信プログラムがあります。最初に書いたのは、1999年でした(プログラム中のコメントにそう書いてありました)から、17年も使ってきたということになります。その途中でプログラムにいろいろ追加したり修正を加えたりしてきました。しかし、基本は変わっておらず、パソコン中のとあるファイル名で保存されたものをメールとして送るようになっています。
 さて、先日、このプログラムがエラーを起こしました。メールの本文に長い URL の文字列が含まれていたことが原因のようでした。
 さっそくプログラムを調べてみたのですが、17年も経っていると、自分でも書いた内容を忘れてしまっているところが多く、プログラムを読みながら、どういう考え方でどう書いたのかを確認していました。
 実行の途中経過を書き出すようなことをしながら、エラーの原因を探っていくと、メール本文を75バイトずつ切るところにエラーがあることがわかりました。行頭禁則文字の処理と半角文字の処理を行っているところで、両者が入り交じっているときにきちんと扱っていないことが原因でした。プログラムを直して、ちゃんと予定通り動作することを確認して終わりました。
 デバッグに取りかかってからエラーの発見まで1時間くらいかかったでしょうか。けっこうしんどかったけれど、おもしろい作業でした。昔の自分と会話する感覚です。
 このとき、ふと思いました。今まで17年間、プログラムのこの部分を実行することなく、毎日のように使い続けてきたのですね。バグはなかなか発見しがたいものです。オーツが自作した他のプログラムでも、きっとこんなことがあるのでしょう。それが表面化しなければ、問題なく使い続けてしまうということです。いやはや、恐いこともあるものです。今回は、エラーメッセージが出たので、気がつきましたが、エラーメッセージを出さずに実行してしまえば、それはそれで通ってしまうこともあるでしょう。気がつかないエラーが一番恐いものです。
 慎重に考え、対処しなければならないことです。
posted by オーツ at 04:42| Comment(0) | TrackBack(0) | パソコンとIT | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック