From: nagai@... Date: 2000-07-28T11:14:16+09:00 Subject: [ruby-dev:10440] exception on TkAfter proc 永井@知能.九工大です. 新たに気付いたもう一つの問題です. これは 1.4 系でも加えておいた方がよい修正かもしれません. Ruby/Tk において種々のタイマーとして用いる TkAfter ですが, これで実行している proc の中で例外が発生すると, 全体が落ちてしまいます. 状況によってはそれでもいいのですが, 単なる点滅などで対象となる widget が破壊されたためにエラー というのを避けるために,TkAfter オブジェクトを 管理しなければならないのではちょっと面倒です. お気楽 Ruby らしくありません.(^_^) というわけで,例外発生時の TkAfter 動作を 選択できるようにすべきとの結論に達しました. 例外が発生した時に,それをそのまま発生させるか, それを補足して TkAfter オブジェクトの動作停止だけとするかで OK だとは思うのですが,問題はメソッド名です. TkAfter#cancel_on_exception= では長すぎそうだし, TkAfter#rescue= では def rescue= で文法エラーの上, TkAfter#rescue_mode= も含めて何のことかよくわからないだろうし... どなたかいい名前を思いつきませんか?(^_^; 名前さえ決まれば実装はすぐに終わるのですが... なお,デフォルトでは例外時動作停止としようと思ってますが, 「いや,逆にすべき」などの意見がありましたら,ぜひお願いします. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp