まつもと ゆきひろです

In message "[ruby-dev:9811] Re: rescue variable syntax"
    on 00/05/24, ARIMA Yasuhiro <fit0298 / fitec.co.jp> writes:

|| rescueで例外オブジェクトを格納する変数を指定する文法を導入し
|| ようと考えています。
|
|$! の別名の代りの案でしょうか?

exceptionメソッドで$!の値を取り出すというのも考えたのですが、
exceptionメソッドは別目的で使われているので、避けようと思い
ました。別の良い名前も思い付かないのでメソッドによる取り出し
は選択肢に入れてません。

|その場合のスコープはどうなるのでしょう?
|名前によるのか、[ensure ; ] end までか?

単に代入するだけです。できるだけ新たなスコープルールは導入し
たくないので。

|rescue  RuntimeError1, RuntimeError2 の場合で考えました。
|
|  rescue  RuntimeError1, RuntimeError2,  var
|  rescue  RuntimeError1, RuntimeError2  do |var|
|
|スコープが名前によるなら前者、[ensure ; ] end までなら後者かなと思います。

前者は、例外クラスを省略する記法

  rescue var

や逆に例外変数を省略する記法

  rescue StandardError, ScriptError

を適切に解釈できそうにないです。スコープを導入する予定はない
ので、後者は使えませんね。

|# なぜか某演算子を思い出しました。 rescue RuntimeError  (T_T)/~~ var

あはは。
                                まつもと ゆきひろ /:|}