[ruby-dev:3470] Re: Exception

From: matz@... (Yukihiro Matsumoto)
Date: 1998-08-25 06:29:40 UTC
List: ruby-dev #3470
まつもと ゆきひろです

In message "[ruby-dev:3469] Re: Exception"
    on 98/08/25, 石塚圭樹 <keiju@Rational.Com> writes:

|けいじゅ@日本ラショナルソフトウェアです.

|例外の使用頻度からいうと
|
|頻度大 raise Foo, "mes"
|頻度小 raise Foo.new, "mes"
|頻度小 raise Foo.new
|
|だと思うんですよ. 

実際には最後のものは例外の再発生に使われると思うので,2番目
のものよりは頻度が高いと思います.

|ですので, 
|
|raise Foo
|
|は, 引数の数を間違えていると考える方が良いような気がするのですが... で
|も, 前田さんのいう通り逆の間違いの可能性もありますし... 両方がわかるメッ
|セージになっているといいんですが.

ええ,なにか良い案を募集します.

|PS.
|でも, raiseのパターンって本当に多いですね. 例外クラスでinitializeが定
|義されているかどうかでも動きが違うみたいだし(@@;;;

整理しましょう.

  引数が一つ

    引数が例外          その例外を投げる
    引数が文字列        raise RuntimeError.new(mesg)

  引数が二つ(あるいは三つ)

    引数をarg1, arg2[, arg3]とする時

      arg1.new(arg2)を行う
      その結果が例外でなければエラー
      arg3が与えられていればそれをバックトレースとしてセット

これですっきりしましたか?

In This Thread