[#38919] Ruby 1.8.1 preview4 — matz@... (Yukihiro Matsumoto)

Hi,

44 messages 2003/12/22
[#38921] Re: Ruby 1.8.1 preview4 — "NAKAMURA, Hiroshi" <nakahiro@...> 2003/12/22

Hi, all,

[ruby-list:38874] 拡張ライブラリにて、例外の再発生

From: Masahiro Kawata <mas@...>
Date: 2003-12-08 14:42:17 UTC
List: 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


In This Thread

Prev Next