twisted.python.failure.Failure(BaseException)
class documentationtwisted.python.failure
(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.
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.
Instance Variable | value | The exception instance responsible for this failure. |
Instance Variable | type | The exception's class. |
Instance Variable | stack | list of frames, innermost last, excluding Failure.__init__ . |
Instance Variable | frames | list of frames, innermost first. |
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 | Undocumented |
Method | throwExceptionIntoGenerator | Throw the original exception into the given generator, preserving traceback information if available. |
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 | getTracebackObject | Get an object that represents this Failure's stack that can be passed to traceback.extract_tb. |
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. |
Method | _extrapolate | Extrapolate from one failure into another, copying its stack frames. |
Class Method | _findFailure | Find the failure that represents the exception currently in context. |
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 | 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 . |
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.
Check if this failure's type is in a predetermined list.
Returns | the matching Exception
type, or None if no match. |
Throw the original exception into the given generator, preserving traceback information if available.
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. |
Find the failure that represents the exception currently in context.
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.
Emulate Python's standard error reporting mechanism.
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' . |