Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-09-03 21:42:17 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-09-03 21:42:17 (GMT)
commitf6239d6df84718044d26f5e746b08a15afb944bf (patch)
treee59b3396a5e6f2d9a2d1a9b0034cc863dbe3b6e6 /sugar
parent4aace42d6d19e928daa666c5264203eb525f0b96 (diff)
Handle exceptions in the activity constructor so that
log messages ends up in the activity log rather than in shell/journal.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activityfactoryservice.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/sugar/activity/activityfactoryservice.py b/sugar/activity/activityfactoryservice.py
index 682abaa..c10a50d 100644
--- a/sugar/activity/activityfactoryservice.py
+++ b/sugar/activity/activityfactoryservice.py
@@ -19,6 +19,8 @@ import os
import sys
from optparse import OptionParser
import gettext
+import traceback
+import logging
import gobject
import gtk
@@ -77,6 +79,7 @@ class ActivityFactoryService(dbus.service.Object):
called multiple times for each time start is called!)
"""
self._activities = []
+ self._service_name = service_name
splitted_module = activity_class.rsplit('.', 1)
module_name = splitted_module[0]
@@ -107,7 +110,13 @@ class ActivityFactoryService(dbus.service.Object):
returns xid for the created instance' root window
"""
activity_handle = activityhandle.create_from_dict(handle)
- activity = self._constructor(activity_handle)
+
+ try:
+ activity = self._constructor(activity_handle)
+ except Exception, e:
+ logging.error(traceback.format_exc())
+ sys.exit(1)
+
activity.present()
self._activities.append(activity)