A Strolling Programmeraka なかだ

またの名を「風まかせ人まかせ力まかせ」日記

T D I A R Y T I M E S % fgrep -i '' *.td2
<< 2006/06/ 1 2 3 4 1. コールドベア新気球
5 6 1. 一日専業主夫
2. コマンドラインって何
7 8 9 10 11 1. make test
12 1. rb_protect
2. 反省点
3. Array[1,2,3,]がSyntaxError
13 14 1. rb_protect(2)
15 16 1. Symbol#to_proc が 1.9 に入ったけど、alist 対応じゃなかった件。
17 18 19 20 21 22 23 24 25 26 27 28 1. LLRing
29 1. 眼鏡
30 >>
«前の日記(2006-06-12) 最新 次の日記(2006-06-16)» 編集

2006-06-14 modified at Wed Jun 14 01:20:12 2006

* [ruby] rb_protect(2)

なかださんがいう修正はこのスクリプトが:ignoredを出力して正常終了するようにするということですよね?

いや、そうとは限りません。

書き方が悪かったですが、それぞれの大域ジャンプが直接もう一方に飛び込んだり飛び越したりしてしまうのが問題なので、境界面でラップするようにすればさらに外側まで持ち出すことは可能です。

Ruby/GLib2側で"大域ジャンプ"できるかどうかを判断できるのであれば、Ruby/GLib2側を修正すればよいと思いますが、できないのであれば、大域ジャンプできないところでは個別にrescueしないといけない気がします。

コールバック中に発生した例外をどう処理するか、という点についてはたしかにその通り、個別に対応を考えるべきでしょう。 それをするなというわけではありません。 ただし、例外が発生したら異常終了してしまうというのでは、Ruby/GLib2のコールバック呼び出しの実装には問題があるのではないか、ということです。 処理できないならできないなりに、上に書いたようにラップして外まで送り出すなりなんなりすべきでしょう。

お名前:
E-mail:
コメント:

投稿する前にチェックボックスをチェックしてください

本日のPingbacks(全0件)
本日のリンク元
アンテナ
その他のリンク元
検索

Key fingerprint = 1E69 3ED2 C05B 6BA4 34B2 FC25 478B C08D 2772 58F6