【发布时间】:2010-09-26 01:20:45
【问题描述】:
我有这个应该 24/7 运行的 Perl 软件。它保持与 IMAP 服务器的连接打开,检查新邮件,然后对新邮件进行分类。
现在我有一个用户每隔一段时间就会让他的 XP 笔记本电脑休眠。发生这种情况时,与服务器的连接失败并触发异常。调用代码通常会捕获该异常并尝试重新连接。但在这种情况下,Windows(或 Perl?)似乎正在捕获异常并通过消息框将其传递给用户。
任何人都知道我可以如何防止这种 wtf 吗?我的代码能否捕捉到“系统即将休眠”信号?
为了澄清你已经提出的一些观点:
- 我对用户休眠他们的机器没有任何问题。我只需要想办法解决这个问题。
- 有问题的 Perl 模块确实会引发异常。它做了类似“die 'foo bar' 之类的事情。尽管应用程序完全基于浏览器并且不使用 Wx 或 Tk 之类的任何东西,但用户会得到一个标题为“poll_timer”的消息框。该消息框的内容就是内容的 $@(本例中为“foo bar”)。
- 使用perlapp 将应用程序编译为可执行文件。不过,该文档没有提及任何有关异常处理的内容。
【问题讨论】: