设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1365|回复: 4
打印 上一主题 下一主题

[已经过期] 如何捕捉SystemExit

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
403 小时
注册时间
2015-8-30
帖子
395
跳转到指定楼层
1
发表于 2017-1-27 18:15:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
因为要实现在任何时候、以任何方式试图退出程序都会执行某一个方法,我想到了捕捉SystemExit,因为exit方法会抛出此异常来退出程序。为了做到这一点,我想到了重新定义rgss_main,使其在执行块内的内容时用begin语句捕捉SystemExit。
  1.   alias origin_rgss_main rgss_main
  2.   def rgss_main
  3.     begin
  4.       super
  5.     rescue SystemExit
  6.       pre_exit
  7.       exit
  8.     end
  9.   end
  10.   def pre_exit
  11.     # ...
  12.   end
复制代码
其中pre_exit方法是在退出程序时执行的。但是经过测试发现这些代码根本没用。查了Ruby语法,关于begin语句有
在没有指定异常类型时,rescue 则会捕捉所有 StandardError 子类的异常,大多数的内建异常都是 StandardError 的子类。
又发现SystemExit异常不是StandardError的子类。
所以,希望找到一个可以捕捉SystemExit的办法,或者找到一个能实现我希望实现功能的另外的办法。非常感谢。
小仙女一枚~

Lv3.寻梦者

梦石
0
星屑
4598
在线时间
1206 小时
注册时间
2016-4-7
帖子
982

开拓者

2
发表于 2017-1-27 20:12:35 | 只看该作者

点评

win32不太会弄,,具体怎么弄能说一下呗  发表于 2017-1-30 13:14
那就试试hook win32窗体消息  发表于 2017-1-29 20:58
经测试无用,包括END { ... }  发表于 2017-1-29 10:50
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 05:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表