Mam ten program Perl, który ma działać 24/7. Utrzymuje otworzyć połączenie z serwerem IMAP, sprawdza nowe wiadomości, a następnie klasyfikuje nowe wiadomości.
Teraz mam użytkownikowi, który jest w stanie hibernacji swoją XP laptopa raz na jakiś czas. Kiedy to nastąpi, połączenie z serwerem nie powiedzie się i wyjątek jest wyzwalany. Kod wywołujący zwykle łapie ten wyjątek i próbuje ponownie. Ale w tym przypadku, wydaje się, że system Windows (lub Perl?) Jest łowienie wyjątek i dostarczanie go do użytkownika za pośrednictwem skrzynki wiadomości.
Ktoś wie, w jaki sposób można zapobiec tego rodzaju wtf? Czy moje kod haczyk „system-to-o-to-hibernacji” sygnał?
Aby wyjaśnić pewne punkty, które już podniesione:
- Nie mam problemu z użytkownikami hibernacji swoje maszyny. Muszę tylko znaleźć sposób, aby sobie z tym poradzić.
- Moduł Perl w pytaniu robi wyjątek. Robi coś takiego jak „die«foo bar». Mimo, że aplikacja jest całkowicie oparty przeglądarkę i nie używa czegoś podobnego Wx lub Tk, użytkownik dostaje okno komunikatu zatytułowanego«poll_timer». Zawartość tej skrzynki wiadomości jest dokładnie zawartość od $ @ ( 'foo bar' w tym przykładzie).
- Aplikacja jest kompilowany do pliku wykonywalnego za pomocą perlapp . Dokumentacja nie wspomina nic na temat obsługi wyjątków, choć.