From: gotoken@... (GOTO Kentaro) Date: 2000-12-24T17:55:36+09:00 Subject: [ruby-list:26801] Re: evel & rescue ごとけんです In message "[ruby-list:26799] evel & rescue" on 00/12/24, " たけ (tk)" writes: >次のようなスクリプトで eval の例外が rescue にかからなかったです。 > >ruby 1.4.3 (1999-12-08) [i386-cygwin] ではちゃんと取れていたのですが >ruby-1.6.2-preview4.tar.gz では次のようになるようです。 > >C:\usr\src\ruby-1.6.2\win32>ruby c:/usr/src/e.rb >c:/usr/src/e.rb:8: (eval):1: compile error (SyntaxError) >(eval):1: unterminated regexp meets end of file SyntaxError は StandardError ではないので指定無しの rescue では拾えません。もしすべての例外を拾いたいなら Exception を 指定する必要があります。 begin eval '/' rescue Exception => err puts err.inspect + " happened!" p SyntaxError < StandardError #=> false p SyntaxError.ancestors #=> [SyntaxError, ScriptError, ... end -- gotoken