Package org.python.core
Class PyException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.lang.RuntimeException
-
- org.python.core.PyException
-
- All Implemented Interfaces:
java.io.Serializable
,Traverseproc
- Direct Known Subclasses:
PyIndentationError
,PySyntaxError
public class PyException extends java.lang.RuntimeException implements Traverseproc
A wrapper for all python exception. Note that the well-known python exceptions are not subclasses of PyException. Instead the python exception class is stored in thetype
field and value or class instance is stored in thevalue
field.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description PyTraceback
traceback
The exception traceback object.PyObject
type
The python exception class (for class exception) or identifier (for string exception).PyObject
value
The exception instance (for class exception) or exception value (for string exception).
-
Constructor Summary
Constructors Constructor Description PyException()
PyException(PyObject type)
PyException(PyObject type, java.lang.String value)
PyException(PyObject type, PyObject value)
PyException(PyObject type, PyObject value, PyTraceback traceback)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PyException
doRaise(PyObject type, PyObject value, PyObject traceback)
Logic for the raise statementstatic java.lang.String
exceptionClassName(PyObject obj)
Get the name of the exception's classjava.lang.Throwable
fillInStackTrace()
static boolean
isExceptionClass(PyObject obj)
Determine whether obj is a Python exception classstatic boolean
isExceptionInstance(PyObject obj)
Determine whether obj is an Python exception instanceboolean
match(PyObject exc)
Determine if this PyException is a match for exc.void
normalize()
Instantiates the exception value if it is not already an instance.void
printStackTrace()
void
printStackTrace(java.io.PrintStream s)
boolean
refersDirectlyTo(PyObject ob)
Optional operation.void
super__printStackTrace(java.io.PrintWriter w)
java.lang.String
toString()
void
tracebackHere(PyFrame here)
Register frame as having been visited in the traceback.void
tracebackHere(PyFrame here, boolean isFinally)
Register frame as having been visited in the traceback.int
traverse(Visitproc visit, java.lang.Object arg)
Traverses all directly containedPyObject
s.
-
-
-
Field Detail
-
type
public PyObject type
The python exception class (for class exception) or identifier (for string exception).
-
value
public PyObject value
The exception instance (for class exception) or exception value (for string exception).
-
traceback
public PyTraceback traceback
The exception traceback object.
-
-
Constructor Detail
-
PyException
public PyException()
-
PyException
public PyException(PyObject type)
-
PyException
public PyException(PyObject type, PyObject value, PyTraceback traceback)
-
PyException
public PyException(PyObject type, java.lang.String value)
-
-
Method Detail
-
printStackTrace
public void printStackTrace()
- Overrides:
printStackTrace
in classjava.lang.Throwable
-
fillInStackTrace
public java.lang.Throwable fillInStackTrace()
- Overrides:
fillInStackTrace
in classjava.lang.Throwable
-
printStackTrace
public void printStackTrace(java.io.PrintStream s)
- Overrides:
printStackTrace
in classjava.lang.Throwable
-
super__printStackTrace
public void super__printStackTrace(java.io.PrintWriter w)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Throwable
-
normalize
public void normalize()
Instantiates the exception value if it is not already an instance.
-
tracebackHere
public void tracebackHere(PyFrame here)
Register frame as having been visited in the traceback.- Parameters:
here
- the current PyFrame
-
tracebackHere
public void tracebackHere(PyFrame here, boolean isFinally)
Register frame as having been visited in the traceback.- Parameters:
here
- the current PyFrameisFinally
- whether caller is a Python finally block
-
doRaise
public static PyException doRaise(PyObject type, PyObject value, PyObject traceback)
Logic for the raise statement- Parameters:
type
- the first arg to raise, a type or an instancevalue
- the second arg, the instance of the class or arguments to its constructortraceback
- a traceback object- Returns:
- a PyException wrapper
-
match
public boolean match(PyObject exc)
Determine if this PyException is a match for exc.- Parameters:
exc
- a PyObject exception type- Returns:
- true if a match
-
isExceptionClass
public static boolean isExceptionClass(PyObject obj)
Determine whether obj is a Python exception class- Parameters:
obj
- a PyObject- Returns:
- true if an exception
-
isExceptionInstance
public static boolean isExceptionInstance(PyObject obj)
Determine whether obj is an Python exception instance- Parameters:
obj
- a PyObject- Returns:
- true if an exception instance
-
exceptionClassName
public static java.lang.String exceptionClassName(PyObject obj)
Get the name of the exception's class- Parameters:
obj
- a PyObject exception- Returns:
- String exception name
-
traverse
public int traverse(Visitproc visit, java.lang.Object arg)
Description copied from interface:Traverseproc
Traverses all directly containedPyObject
s. Like in CPython,arg
must be passed unmodified tovisit
as its second parameter. IfVisitproc.visit(PyObject, Object)
returns nonzero, this return value must be returned immediately by traverse.Visitproc.visit(PyObject, Object)
must not be called with anull
PyObject-argument.- Specified by:
traverse
in interfaceTraverseproc
-
refersDirectlyTo
public boolean refersDirectlyTo(PyObject ob)
Description copied from interface:Traverseproc
Optional operation. Should only be implemented if it is more efficient than callingTraverseproc.traverse(Visitproc, Object)
with a visitproc that just watches out forob
. Must returnfalse
ifob
isnull
.- Specified by:
refersDirectlyTo
in interfaceTraverseproc
-
-