まつもと ゆきひろです

In message "[ruby-list:7469] [Q]ensure"
    on 98/04/15, Makoto Nukui <gnue / cyborg.ne.jp> writes:

|はじめまして、GNUE(鵺)[ヌエ]といいます。

|ruby歴2日の新参者です。
|ところで質問なのですが
|
|  def test1
|    db = DBM.open('test');
|  ensure
|    db.close;
|  end
|
|としようとすると構文エラーとなります。

そうですね.今の文法ではそうなってます.

|これだと begin ブロックが
|冗長なような気がします。def...end は begin ブロック
|と同じと考えるのは間違っているのでしょうか?

現時点ではそうですね.

defを暗黙のbeginブロックとするというのはひとつのアイディアで
はありますが,では,moduleやclassはどうなのだ,とかいう点も
気になりますし,JavaやPythonなどの言語でも例外処理用の構文は
独立しているので,「現時点では」これはこれで良いのだ,例外処
理を行う気分を盛り上げるのに貢献しているのだ,と思ってます.

rubyの場合,あまり本気で例外捕捉を行わない事が多いんで(Java
みたいに捕捉しないからといってエラーになるわけでもないし),
そんなに気にならないのかも知れません.

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