From: Masahiro Kawata Date: 2003-12-08T23:42:17+09:00 Subject: [ruby-list:38874] 拡張ライブラリにて、例外の再発生 かわたと申します。 現在拡張ライブラリを書いているのですが、 そのライブラリからメソッドを呼び出し、例外が発生した場合には 後処理を行い、例外の再発生をさせたいと思っています。 (ruby であればraise するだけでの事ですが。。。) $!はCではruby_errinfoだと思い、以下のような感じでやってみました。 rb_protect( method, v, &state); if( state){ ...後処理 rb_raise( ruby_errinfo, RSTRING( rb_obj_as_string( ruby_errinfo))->ptr); } とすると、SIGSEGVが発生してしまいました。 過去ログでは、ruby_errinfoは「参照」はしても良いという事でしたが、 このような用途には使ってはいけないものなのでしょうか? それと、例外の再発生について、正しいやり方があるのなら教えていただけると 幸いです。 よろしくお願いします。 河田 正広 mas@mas.ath.cx