gpt4 book ai didi

ruby - Ruby 中未处理的异常

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:23 24 4
gpt4 key购买 nike

我是第一次从事 ruby​​ 项目。除了我希望能够注册一个未处理的异常处理程序之外,我已经得到了我需要的一切,这样我就可以在发生崩溃时触发一些东西,而这不是由救援处理的,但我看不出这是否可能。

我已经完成了很多其他语言,比如在 Python 中我已经完成了以下内容:

sys.excepthook = MyClass._unhandledCrashHandler

我在 Ruby 中找不到任何等效项来执行此操作。这可能吗?

应该提到,我正在编写一个 Ruby 库,所以我的想法是当主 ruby​​ 应用程序初始化我的库时,库设置已处理的异常处理程序,然后如果主应用程序崩溃,库就会崩溃。这是我在 python 和许多其他语言中所做的,没有问题,但在 Ruby 中看不到这样做的任何方式。

最佳答案

Ruby 没有通用处理程序,而是您包装可能产生异常的代码。例如:

begin
# ... Do stuff
rescue => e
$stderr.puts("[%s] %s" % [ e.class, e ])
$stderr.puts(e.backtrace.join("\n"))
end

拯救所有标准异常并显示一些诊断输出的地方。您可以在 rescue block 中做任何您想做的事情。任何未捕获的异常都会自动冒泡到您的顶层。

这必须是您的 Ruby 应用程序的顶级代码。

与您在 Ruby 中谈论的内容最接近的是您可以定义的 at_exit 处理程序,但它在每个退出场景中运行,而不仅仅是未捕获的异常。

关于ruby - Ruby 中未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58124898/

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