RPC layer. Any other exception type bubbling until the RPC layer will be
treated as a 'Server error'.
+If you consider introducing new exceptions, check out the test_exceptions addon.
"""
-import re
+# kept for backward compatibility
+class except_orm(Exception):
+ def __init__(self, name, value):
+ self.name = name
+ self.value = value
+ self.args = (name, value)
class Warning(Exception):
pass
-class WarningConfig(Exception):
- """ Warning bound to a misconfiguration. """
- def __init__(self, msg):
- # todo: treat the msg (regex)
- super(WarningConfig, self).__init__(msg)
+class RedirectWarning(Exception):
+ """ Warning with a possibility to redirect the user instead of simply
+ diplaying the warning message.
+
+ Should receive as parameters:
+ :param int action_id: id of the action where to perform the redirection
+ :param string button_text: text to put on the button that will trigger
+ the redirection.
+ """
class AccessDenied(Exception):
""" Login/password error. No message, no traceback. """
super(AccessDenied, self).__init__('Access denied.')
self.traceback = ('', '', '')
-class AccessError(Exception):
+class AccessError(except_orm):
""" Access rights error. """
+ def __init__(self, msg):
+ super(AccessError, self).__init__('AccessError', msg)
+
+class MissingError(except_orm):
+ """ Missing record(s). """
+ def __init__(self, msg):
+ super(MissingError, self).__init__('MissingError', msg)
+
+class ValidationError(except_orm):
+ def __init__(self, msg):
+ super(ValidationError, self).__init__('ValidateError', msg)
class DeferredException(Exception):
""" Exception object holding a traceback for asynchronous reporting.