ひわだです。

String以外のメッセージを持ったExceptionの挙げ方を教えてください。
よく分からないのでいまはこんな風にしています。

require "marshal"
class ExcFound < Exception
  def initialize(a); super(Marshal.dump(a)) end
end
begin
  # 何かをサーチ
  raise ExcFound.new([1,2,3])  # if 見つかった
rescue ExcFound
  p ["found!", Marshal.load($!)]
end

どこかで聞いたような気がしたんですが、見つからなかったので(_ _。

#cygwin版1.1c2 では Marshal.load がたまに失敗するみたいです。
#よく分からないんですが、 in `load'; negative array size (or size too big)
#とかいわれてしまいます。
--
檜田 和浩 ( hiwada / kuee.kyoto-u.ac.jp )