Project1
标题:
如何捕捉SystemExit
[打印本页]
作者:
有丘直方
时间:
2017-1-27 18:15
标题:
如何捕捉SystemExit
因为要实现在任何时候、以任何方式试图退出程序都会执行某一个方法,我想到了捕捉SystemExit,因为exit方法会抛出此异常来退出程序。为了做到这一点,我想到了重新定义rgss_main,使其在执行块内的内容时用begin语句捕捉SystemExit。
alias origin_rgss_main rgss_main
def rgss_main
begin
super
rescue SystemExit
pre_exit
exit
end
end
def pre_exit
# ...
end
复制代码
其中pre_exit方法是在退出程序时执行的。但是经过测试发现这些代码根本没用。查了Ruby语法,关于begin语句有
在没有指定异常类型时,rescue 则会捕捉所有 StandardError 子类的异常,大多数的内建异常都是 StandardError 的子类。
又发现SystemExit异常不是StandardError的子类。
所以,希望找到一个可以捕捉SystemExit的办法,或者找到一个能实现我希望实现功能的另外的办法。非常感谢。
作者:
shitake
时间:
2017-1-27 20:12
at_exit
http://www.kuqin.com/rubycndocument/man/stdlib_function.html
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1