core, bridge: better GenericException handling

This commit is contained in:
Goffi 2013-12-17 00:56:39 +01:00
commit b6aaecc5c2
2 changed files with 33 additions and 11 deletions

View file

@ -56,8 +56,13 @@ class DeferredNotAsync(dbus.DBusException):
class GenericException(dbus.DBusException):
def __init__(self, twisted_error):
super(GenericException, self).__init__()
mess = twisted_error.getErrorMessage()
self._dbus_error_name = const_ERROR_PREFIX + "." + (mess or str(twisted_error.__class__))
try:
error_name = str(twisted_error.value().__class__.__name__)
# twisted_error.value is a class
except TypeError:
# twisted_error.value is an instance
error_name = str(twisted_error.value.__class__.__name__)
self._dbus_error_name = const_ERROR_PREFIX + "." + error_name
class DbusObject(dbus.service.Object):

View file

@ -56,8 +56,13 @@ class DeferredNotAsync(dbus.DBusException):
class GenericException(dbus.DBusException):
def __init__(self, twisted_error):
super(GenericException, self).__init__()
mess = twisted_error.getErrorMessage()
self._dbus_error_name = const_ERROR_PREFIX + "." + (mess or str(twisted_error.__class__))
try:
error_name = str(twisted_error.value().__class__.__name__)
# twisted_error.value is a class
except TypeError:
# twisted_error.value is an instance
error_name = str(twisted_error.value.__class__.__name__)
self._dbus_error_name = const_ERROR_PREFIX + "." + error_name
class DbusObject(dbus.service.Object):