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

yarv-dev:158

From: (Yukihiro Matsumoto) <matz ruby-lang.org>
Date: Sun, 29 Aug 2004 15:22:06 +0900
Subject: [yarv-dev:158] Re: $! problem

まつもと ゆきひろです

In message "[yarv-dev:156] $! problem"
    on 04/08/29, SASADA Koichi <ko1 atdot.net> writes:

| $! の実装が大変そうです.
| $! って必須ですか?

言語仕様としては必須でしょう。
ただし、実装が楽なように仕様を変えるのはありだと思います。

$!をrescue節のブロックパラメータ扱いにすれば特別なコストなし
で実装できるんじゃないかと思うんですが、どうでしょう。rescue
節以外では必ずnilということにして。

|class E1 < Exception; end
|class E2 < Exception; end
|
|1.times{
|  begin
|    raise E1
|  rescue E1
|    begin
|      raise E2
|    ensure
|      break
|    end
|  end
|}
|(これが E2 エラーにならないのも変かも)

ensureでjumpを行うと例外が消えてしまうのが現状の動作ですが、
これは変えても構いません。たとえばエラーにするとか。

| あと,$! がなくなると raise $! の短縮形の raise ができなく
|なっちゃいますね.

これはうれしくない。

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

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

       156 2004-08-29 07:53 [ko1 atdot.net       ] $! problem                              
->     158 2004-08-29 15:22 ┣[matz ruby-lang.org  ]                                       
       161 2004-08-29 18:09 ┃┗[ko1 atdot.net       ]                                     
       159 2004-08-29 17:21 ┗[maeda-yarv atusi.org]