class Failure(BaseException): (source)
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.
The stack and frame attributes contain frames. Each frame is a tuple of (funcName, fileName, lineNumber, localsItems, globalsItems), where localsItems and globalsItems are the contents of locals().items()/globals().items() for that frame, or an empty tuple if those details were not captured.
Method | __getstate__ |
Avoid pickling objects in the traceback. |
Method | __init__ |
Initialize me with an explanation of the error. |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | check |
Check if this failure's type is in a predetermined list. |
Method | cleanFailure |
Remove references to other objects, replacing them with strings. |
Method | getBriefTraceback |
Undocumented |
Method | getErrorMessage |
Get a string of the exception which caused this Failure. |
Method | getTraceback |
Undocumented |
Method | getTracebackObject |
Get an object that represents this Failure's stack that can be passed to traceback.extract_tb. |
Method | printBriefTraceback |
Print a traceback as densely as possible. |
Method | printDetailedTraceback |
Print a traceback with detailed locals and globals information. |
Method | printTraceback |
Emulate Python's standard error reporting mechanism. |
Method | raiseException |
raise the original exception, preserving traceback information if available. |
Method | throwExceptionIntoGenerator |
Throw the original exception into the given generator, preserving traceback information if available. |
Method | trap |
Trap this failure if its type is in a predetermined list. |
Class Variable | pickled |
Undocumented |
Instance Variable | __dict__ |
Undocumented |
Instance Variable | captureVars |
Undocumented |
Instance Variable | count |
Undocumented |
Instance Variable | frames |
list of frames, innermost first. |
Instance Variable | parents |
Undocumented |
Instance Variable | stack |
list of frames, innermost last, excluding Failure.__init__. |
Instance Variable | tb |
Undocumented |
Instance Variable | type |
The exception's class. |
Instance Variable | value |
The exception instance responsible for this failure. |
Class Method | _findFailure |
Find the failure that represents the exception currently in context. |
Method | _extrapolate |
Extrapolate from one failure into another, copying its stack frames. |
Class Variable | _yieldOpcode |
Undocumented |
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.
If no exc_value is passed, then an "original" Failure will be searched for. If the current exception handler that this Failure is being constructed in is handling an exception raised by raiseException
, then this Failure will act like the original Failure.
For exc_tb only traceback
instances or None
are allowed. If None
is supplied for exc_value, the value of exc_tb is ignored, otherwise if exc_tb is None
, it will be found from execution context (ie, sys.exc_info
).
Parameters | |
exc_value | Undocumented |
exc_type | Undocumented |
exc_tb | Undocumented |
captureVars | if set, capture locals and globals of stack frames. This is pretty slow, and makes no difference unless you are going to use printDetailedTraceback . |
Remove references to other objects, replacing them with strings.
On Python 3, this will also set the __traceback__ attribute of the exception instance to None
.
Get an object that represents this Failure's stack that can be passed to traceback.extract_tb.
If the original traceback object is still present, return that. If this traceback object has been lost but we still have the information, return a fake traceback object (see _Traceback
). If there is no traceback information at all, return None.
twisted.spread.pb.CopiedFailure
Parameters | |
file | If specified, a file-like object to which to write the traceback. |
elideFrameworkCode | A flag indicating whether to attempt to remove uninteresting frames from within Twisted itself from the output. |
detail | A string indicating how much information to include in the traceback. Must be one of 'brief', 'default', or 'verbose'. |
twisted.spread.pb.CopiedFailure
Returns | |
The next value yielded from the generator. | |
Raises | |
StopIteration | If there are no more values in the generator. |
anything else | Anything that the generator raises. |
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. In Python 2 the Failure will be raised; in Python 3 the underlying exception will be re-raised.
Parameters | |
*errorTypes:Exception | Undocumented |
twisted.spread.pb.CopiedFailure