From: matz@... (Yukihiro Matsumoto) Date: 1997-02-17T15:44:29+09:00 Subject: [ruby-list:2149] Re: catch-throw まつもと ゆきひろです. In message "[ruby-list:2148] catch-throw" on 97/02/17, sinara@blade.nagaokaut.ac.jp writes: | |原です。 | |catch - throw について少し質問など。 | |【1】 catch - throw と rescue ... raise というのは、とても |似ているけど、どう使い分けるんでしょうか。catch - throw をエ |ラー処理に使うのはやめてくれ、とか、推奨するプログラム書法は |あるんでしょうか。 例外でないときに例外を流用するのを避けるためのものです.です から,エラー処理でなくて大域脱出したい時に使ってください.た とえばlib/find.rbで使っていますね. |【2】catch と throw の第一引数は symbol か string ということ |ですが、単なる Integer でも構わないですよね?そもそも : という |のは記号に対してユニークな自然数を与えることは保証されているの |かしら。 Fixnumなら構わないでしょうね.でも,見栄えが悪いのでシンボル を使うのがお勧めです. # でも,定数にいれておけば良いのか. ちなみにシンボルが識別子(演算子を含む)に対して一意に決まるこ とは保証されています. |【3】マニュアルの「組み込み関数」の catch の例は、第一引数 |が無くて動かないと思います。 あらら.修正しておきます. |【4】Thread#raise ができるのなら、Thread#throw もできて欲し |いと思う人も出てくるのではないかと思いますが、その辺いかがで |しょう? そうですねえ.でも,「これがないとこういうことがどうしても書 けない」という話になるまで実装しません.Lazyなので.^^;;; まつもと ゆきひろ /:|)