[#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:38875] Re: 拡張ライブラリにて、例外の再発生

From: nobu.nakada@...
Date: 2003-12-08 15:01:44 UTC
List: ruby-list #38875
なかだです。

At Mon, 8 Dec 2003 23:42:17 +0900,
Masahiro Kawata wrote:
> $!はCではruby_errinfoだと思い、以下のような感じでやってみました。
> 
> rb_protect( method, v, &state);
> if( state){
>   ...後処理
>   rb_raise( ruby_errinfo, RSTRING( rb_obj_as_string(
> ruby_errinfo))->ptr);
> }

rb_protect()で捕まえた例外は、rb_jump_tag()で再発生できます。

> とすると、SIGSEGVが発生してしまいました。
> 過去ログでは、ruby_errinfoは「参照」はしても良いという事でしたが、
> このような用途には使ってはいけないものなのでしょうか?

rb_raise()の第一引数にはExceptionインスタンスではなくて
Exceptionクラスが必要です。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread