org.python.core
Class PyException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by java.lang.RuntimeException
              extended by org.python.core.PyException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
PyIndentationError, PySyntaxError

public class PyException
extends RuntimeException

A wrapper for all python exception. Note that the wellknown python exception are not subclasses of PyException. Instead the python exception class is stored in the type field and value or class instance is stored in the value field.

See Also:
Serialized Form

Field Summary
 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
PyException()
           
PyException(PyObject type)
           
PyException(PyObject type, PyObject value)
           
PyException(PyObject type, PyObject value, PyTraceback traceback)
           
PyException(PyObject type, String value)
           
 
Method Summary
static PyException doRaise(PyObject type, PyObject value, PyObject traceback)
          Logic for the raise statement
static String exceptionClassName(PyObject obj)
          Get the name of the exception's class
 Throwable fillInStackTrace()
           
static boolean isExceptionClass(PyObject obj)
          Determine whether obj is a Python exception class
static boolean isExceptionInstance(PyObject obj)
          Determine whether obj is an Python exception instance
 boolean 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(PrintStream s)
           
 void super__printStackTrace(PrintWriter w)
           
 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.
 
Methods inherited from class java.lang.Throwable
getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, setStackTrace
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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)

PyException

public PyException(PyObject type,
                   PyObject value,
                   PyTraceback traceback)

PyException

public PyException(PyObject type,
                   String value)
Method Detail

printStackTrace

public void printStackTrace()
Overrides:
printStackTrace in class Throwable

fillInStackTrace

public Throwable fillInStackTrace()
Overrides:
fillInStackTrace in class Throwable

printStackTrace

public void printStackTrace(PrintStream s)
Overrides:
printStackTrace in class Throwable

super__printStackTrace

public void super__printStackTrace(PrintWriter w)

toString

public String toString()
Overrides:
toString in class 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 PyFrame
isFinally - 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 instance
value - the second arg, the instance of the class or arguments to its constructor
traceback - 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 String exceptionClassName(PyObject obj)
Get the name of the exception's class

Parameters:
obj - a PyObject exception
Returns:
String exception name


Jython homepage