Part of twisted.python.failure View Source View In Hierarchy
Known subclasses: twisted.spread.pb.CopiedFailure, twisted.spread.pb.CopyableFailure
A basic abstraction for an error that has occurred.
This is necessary because Python's built-in error mechanisms are inconvenient for asynchronous communication.Instance Variables | value | The exception instance responsible for this failure. |
type | The exception's class. |
Method | __init__ | Initialize me with an explanation of the error. |
Method | trap | Trap this failure if its type is in a predetermined list. |
Method | check | Check if this failure's type is in a predetermined list. |
Method | raiseException | raise the original exception, preserving traceback |
Method | __repr__ | Undocumented |
Method | __str__ | Undocumented |
Method | __getstate__ | Avoid pickling objects in the traceback. |
Method | cleanFailure | Remove references to other objects, replacing them with strings. |
Method | getErrorMessage | Get a string of the exception which caused this Failure. |
Method | getBriefTraceback | Undocumented |
Method | getTraceback | Undocumented |
Method | printTraceback | Emulate Python's standard error reporting mechanism. |
Method | printBriefTraceback | Print a traceback as densely as possible. |
Method | printDetailedTraceback | Print a traceback with detailed locals and globals information. |
Initialize me with an explanation of the error.
By default, this will use the current exception (sys.exc_info
()). However, if you want to specify a
particular kind of failure, you can pass an exception as an argument.
Trap this failure if its type is in a predetermined list.
This allows you to trap a Failure in an error callback. It will be automatically re-raised if it is not a type that you expect.
The reason for having this particular API is because it's very useful in Deferred errback chains:
| def _ebFoo(self, failure): | r = failure.trap(Spam, Eggs) | print 'The Failure is due to either Spam or Eggs!' | if r == Spam: | print 'Spam did it!' | elif r == Eggs: | print 'Eggs did it!'
If the failure is not a Spam or an Eggs, then the Failure will be 'passed on' to the next errback.Parameters | errorTypes | (type: Exception
) |
Parameters | errorTypes | (type: list of Exception classes or fully-qualified class
names.
) |
Returns | the matching Exception type, or None if no match.
|