ruby';s rb_raise是否停止调用它的c函数的执行?
如果在C中编写一个ruby方法作为一个使用ruby';s rb_raise是否停止调用它的c函数的执行?,c,ruby,raise,C,Ruby,Raise,如果在C中编写一个ruby方法作为一个使用rb\u raise的函数,调用后的函数部分将不会被删除,程序将停止,您将认为rb\u raise已使用exit()。但是如果您在ruby中拯救了异常,比如: begin method_that_raises_an_exception rescue end puts 'You wil still get here.' ruby代码将继续运行,但您的函数将停止执行。rb_-raise是如何实现的?大概它使用了setjmp(在调用方法之前)和longj
rb\u raise
的函数,调用后的函数部分将不会被删除,程序将停止,您将认为rb\u raise
已使用exit()
。但是如果您在ruby中拯救了异常,比如:
begin
method_that_raises_an_exception
rescue
end
puts 'You wil still get here.'
ruby代码将继续运行,但您的函数将停止执行。
rb_-raise
是如何实现的?大概它使用了setjmp
(在调用方法之前)和longjmp
(在rb_-raise
中)