123456789101112131415161718192021222324252627282930313233343536373839 |
- class OfflineImapError(Exception):
- """An Error during offlineimap synchronization"""
- class ERROR:
- """Severity level of an Exception
- * **MESSAGE**: Abort the current message, but continue with folder
- * **FOLDER_RETRY**: Error syncing folder, but do retry
- * **FOLDER**: Abort folder sync, but continue with next folder
- * **REPO**: Abort repository sync, continue with next account
- * **CRITICAL**: Immediately exit offlineimap
- """
- MESSAGE, FOLDER_RETRY, FOLDER, REPO, CRITICAL = 0, 10, 15, 20, 30
- def __init__(self, reason, severity, errcode=None):
- """
- :param reason: Human readable string suitable for logging
- :param severity: denoting which operations should be
- aborted. E.g. a ERROR.MESSAGE can occur on a faulty
- message, but a ERROR.REPO occurs when the server is
- offline.
- :param errcode: optional number denoting a predefined error
- situation (which let's us exit with a predefined exit
- value). So far, no errcodes have been defined yet.
- :type severity: OfflineImapError.ERROR value"""
- self.errcode = errcode
- self.severity = severity
- # 'reason' is stored in the Exception().args tuple.
- super(OfflineImapError, self).__init__(reason)
- @property
- def reason(self):
- return self.args[0]
|