[前][次][番号順一覧][スレッド一覧][生データ]

langsmith:155

From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Wed, 13 Oct 2004 01:30:36 +0900
Subject: [langsmith:155] Re: 例外処理:Eiffel とRuby

まつもと ゆきひろです

In message "Re: [langsmith:154] Re: 例外処理:Eiffel とRuby"
    on Wed, 13 Oct 2004 00:00:02 +0900, W <ttn3w7u2fs mx6.ttcn.ne.jp> writes:

|>「(Eiffelのように例外はDbCだけに使うというのでない限り) 嬉しい理由は見当たらない」です。

|は、もう少し詳しく書いていただけるとすると、下記のどのあたりになるでしょ
|うか?:
|
|a) DbC のコンセプトには同意する。Eiffel の例外処理デザインは DbC だけと
|いうことなので、
|それはそれでいいだろうが、個人的には例外処理に普通のエラー処理も含めたい
|ところなので、
|Eiffel的例外処理は採用しない(実際 Ruby ではそうされていると思われるので
|すが)。

これですね。DbCについては、有効なコンセプトかもしれないが、
万能ではないし、言語そのものをDbC流に設計するほどではないと
思っている。というか、DbCのために他のエラー処理が面倒になる
んだったら本末転倒ではないかと。

個人的には通常の例外処理の範囲内でDbCを行った方が良いと思っ
てます。統一的に扱えるし。上に伝搬したい時に明示的に行う必要
はありますが、頻度を考えるとむしろメリットに思えます。

|ちなみに、W は、
|DbC のコンセプトには同意できる。Eiffel の例外処理デザインも半分同意でき
|る。しかし、ルーチンにしかハンドラが書けない点、ステータスコードは補助的
|な扱いである点、素のままでは原始的対処法(OOSC1 邦訳 p.210 の
|quasi_inverse がその典型例)しかない書けないのは何か変。ライブラリ
|(EXCEPTIONSクラス)で ignore を提供するのもしっくり来ない。エラー処理全
|般に、結局 if文などによるステータスチェック方式と例外処理との両方が必要
|なのもいまいち納得できな2い。何か上手い方法でもないだろうか。
|
|…というところです。

本当にDbCラブな人が言語をデザインするなら、DbCによる「表明の
不成立」と通常の「例外」の両方を用意するのかもしれません( 使
いやすいかどうかは不明)。もっとも、その場合、例外が発生した
ということは契約として見た時にどうなのか、という問いに応えを
用意する必要があるでしょうが。

                                まつもと ゆきひろ /:|)

--
ML: langsmith quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       135 2004-10-07 00:06 [ttn3w7u2fs mx6.ttcn.] 例外処理:Eiffel とRuby                  
       136 2004-10-07 00:41 ┗[matz ruby-lang.org  ]                                       
       138 2004-10-07 11:29  ┗[ttn3w7u2fs mx6.ttcn.]                                     
       139 2004-10-07 12:35   ┣[matz ruby-lang.org  ]                                   
       144 2004-10-07 21:49   ┃┗[randy mvd.biglobe.ne]                                 
       145 2004-10-07 22:04   ┃ ┗[matz ruby-lang.org  ]                               
       146 2004-10-08 21:59   ┃  ┗[randy mvd.biglobe.ne]                             
       150 2004-10-11 00:16   ┃   ┗[ttn3w7u2fs mx6.ttcn.]                           
       151 2004-10-11 00:52   ┃    ┗[matz ruby-lang.org  ]                         
       154 2004-10-13 00:00   ┃     ┗[ttn3w7u2fs mx6.ttcn.]                       
->     155 2004-10-13 01:30   ┃      ┗[matz ruby-lang.org  ]                     
       140 2004-10-07 14:23   ┣[takehiko eel.rdc.tos]                                   
       141 2004-10-07 14:33   ┃┗[matz ruby-lang.org  ]                                 
       143 2004-10-07 16:50   ┃ ┗[takehiko eel.rdc.tos]                               
       142 2004-10-07 15:20   ┣[shiro lava.net      ]                                   
       156 2004-10-14 12:32   ┃┗[maeda-langsmith atus]                                 
       147 2004-10-08 22:21   ┗[ko1 atdot.net       ]                                   
       148 2004-10-09 06:42    ┗[shiro lava.net      ]