gpt4 book ai didi

c - ruby的rb_raise如何停止调用它的c函数的执行?

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:24 24 4
gpt4 key购买 nike

如果你在 C 中将一个 ruby​​ 方法写成一个使用 rb_raise 的函数,调用后的函数部分将不会被执行,程序将停止,你会认为 rb_raise 使用了 exit()。但是如果你在 ruby​​ 中拯救异常,比如:

begin
method_that_raises_an_exception
rescue
end
puts 'You wil still get here.'

ruby 代码将继续,但您的函数将停止执行。 rb_raise 如何实现这一目标?

最佳答案

推测它使用了setjmp(在调用方法之前)和longjmp(在rb_raise中)。

关于c - ruby的rb_raise如何停止调用它的c函数的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2535568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com