加藤@ODNです.

In article <3988646news.pl@insigna.ie.u-ryukyu.ac.jp>, Shinji KONO wrote:
>河野真治 @ 琉球大学情報工学です。

>あと、エラーは悪いことだってのが前提としてあるみたい。

悪いことと言うより(製品には?)有ってはならないこと,という考え方な
んでしょうかねぇ.人間の能力では実現不可能な...

>オブジェクト指向とかコードの再利用、あるいは、プラグインなどが
>導入された現在では、
>
>    処理を実行する前提条件は、必ず、チェックする
>
>ってのが必須だと思う。なので、assert ってのは現状にあってな
>いと思います。この手のコードは残るべきなのね。

N. Wirth がそう主張してましたね.

>そして、
>
>    エラーチェックで失敗したときに、あと引き受ける
>
>ことが必須だと思う。もちろん、絶対に復帰できないエラーっての
>があるのは、そうだと思うんだけど、オブジェクトとかメモリプー
>ルとかプロセスとか使うことによって結構避けられると思うんだけ
>ど。

最初からそういうつもりで設計していればかなり拾えると思います.が,そ
れは大仕事です.例えば,コンパイラのエラーメッセージを適切に表示する
事を考えると,メインの仕事の数倍〜数十倍の工数になるのでは?

>というわけで、僕の立場は、
>
>     エラー処理をしないことが前提のassertは、製品化しないような
>     プログラム(あるいは、マイクロソフトの売ったら勝ち、バグは
>     知らん方針)が前提であり、時代遅れであって、使ってはいけない
>     ものだ。
>
>ってなもんです。

同感ですねぇ.PL 法をびしびし適用すべきなんでしょう.MS の OS のバグ
のせいで日々失われている損害は世界中で数百万ドル位はありそう.

>Writing Sold Code には、もう一つ、
>
>     サブルーチンのエラー通知と値の返却を共用しない (つまりEOF==1やNaNみたいな
>     のを使わない)
>
>ってものがあるんだけど、これもエラーを上位に通知しないことを
>前提に書いていると思う。エラーを通知する手段としてreturn value
>を使うのは僕は有効だと思う。実際、EOF は便利だし。

EOF は(例外の一種であって)エラーではないと思いますが?

>エラーを特別視することが間違っているんだろうな。プログラム理論
>的にも⊥は便利だし。

ですね.エラーは(起こるはずがないものではなく,起きるのが当たり前
の)例外の一種として扱うべきなんでしょう.
-- 
Hideki Kato <mailto:katoh@pop12.odn.ne.jp>


----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---