OSDN Git Service

LiveText monitor thread: Add some exception handling.
authorJames Teh <jamie@jantrid.net>
Tue, 9 Nov 2010 22:53:24 +0000 (08:53 +1000)
committerJames Teh <jamie@jantrid.net>
Tue, 9 Nov 2010 22:53:24 +0000 (08:53 +1000)
source/NVDAObjects/behaviors.py

index 8233db7..6ea2a3f 100755 (executable)
@@ -200,17 +200,24 @@ class LiveText(NVDAObject):
                speech.speakText(line)\r
 \r
        def _monitor(self):\r
-               oldLines = self._getTextLines()\r
+               try:\r
+                       oldLines = self._getTextLines()\r
+               except:\r
+                       log.exception("Error getting initial lines")\r
+                       oldLines = []\r
                while self._keepMonitoring:\r
                        self._event.wait()\r
                        if not self._keepMonitoring:\r
                                break\r
                        self._event.clear()\r
-                       newLines = self._getTextLines()\r
-                       if globalVars.reportDynamicContentChanges:\r
-                               for line in self._calculateNewText(newLines, oldLines):\r
-                                       queueHandler.queueFunction(queueHandler.eventQueue, self._reportNewText, line)\r
-                       oldLines = newLines\r
+                       try:\r
+                               newLines = self._getTextLines()\r
+                               if globalVars.reportDynamicContentChanges:\r
+                                       for line in self._calculateNewText(newLines, oldLines):\r
+                                               queueHandler.queueFunction(queueHandler.eventQueue, self._reportNewText, line)\r
+                               oldLines = newLines\r
+                       except:\r
+                               log.exception("Error getting lines or calculating new text")\r
                        time.sleep(self.MIN_CHECK_NEW_INTERVAL)\r
 \r
        def _calculateNewText(self, newLines, oldLines):\r