|
From: <pj...@us...> - 2011-03-21 05:01:07
|
Revision: 7254
http://jython.svn.sourceforge.net/jython/?rev=7254&view=rev
Author: pjenvey
Date: 2011-03-21 05:01:00 +0000 (Mon, 21 Mar 2011)
Log Message:
-----------
more 2.6 exception changes
Modified Paths:
--------------
trunk/jython/src/org/python/core/Py.java
trunk/jython/src/org/python/core/PyException.java
Removed Paths:
-------------
trunk/jython/Lib/test/exception_hierarchy.txt
Deleted: trunk/jython/Lib/test/exception_hierarchy.txt
===================================================================
--- trunk/jython/Lib/test/exception_hierarchy.txt 2011-03-20 19:56:03 UTC (rev 7253)
+++ trunk/jython/Lib/test/exception_hierarchy.txt 2011-03-21 05:01:00 UTC (rev 7254)
@@ -1,49 +0,0 @@
-BaseException
- +-- SystemExit
- +-- KeyboardInterrupt
- +-- GeneratorExit
- +-- Exception
- +-- StopIteration
- +-- StandardError
- | +-- ArithmeticError
- | | +-- FloatingPointError
- | | +-- OverflowError
- | | +-- ZeroDivisionError
- | +-- AssertionError
- | +-- AttributeError
- | +-- EnvironmentError
- | | +-- IOError
- | | +-- OSError
- | | +-- WindowsError (Windows)
- | | +-- VMSError (VMS)
- | +-- EOFError
- | +-- ImportError
- | +-- LookupError
- | | +-- IndexError
- | | +-- KeyError
- | +-- MemoryError
- | +-- NameError
- | | +-- UnboundLocalError
- | +-- ReferenceError
- | +-- RuntimeError
- | | +-- NotImplementedError
- | +-- SyntaxError
- | | +-- IndentationError
- | | +-- TabError
- | +-- SystemError
- | +-- TypeError
- | +-- ValueError
- | +-- UnicodeError
- | +-- UnicodeDecodeError
- | +-- UnicodeEncodeError
- | +-- UnicodeTranslateError
- +-- Warning
- +-- DeprecationWarning
- +-- PendingDeprecationWarning
- +-- RuntimeWarning
- +-- SyntaxWarning
- +-- UserWarning
- +-- FutureWarning
- +-- ImportWarning
- +-- UnicodeWarning
- +-- BytesWarning
Modified: trunk/jython/src/org/python/core/Py.java
===================================================================
--- trunk/jython/src/org/python/core/Py.java 2011-03-20 19:56:03 UTC (rev 7253)
+++ trunk/jython/src/org/python/core/Py.java 2011-03-21 05:01:00 UTC (rev 7254)
@@ -353,6 +353,7 @@
public static PyException MemoryError(String message) {
return new PyException(Py.MemoryError, message);
}
+ public static PyObject BufferError;
public static PyObject ArithmeticError;
public static PyObject LookupError;
public static PyObject StandardError;
@@ -767,6 +768,7 @@
NameError = initExc("NameError", exc, dict);
UnboundLocalError = initExc("UnboundLocalError", exc, dict);
AttributeError = initExc("AttributeError", exc, dict);
+
SyntaxError = initExc("SyntaxError", exc, dict);
IndentationError = initExc("IndentationError", exc, dict);
TabError = initExc("TabError", exc, dict);
@@ -787,6 +789,7 @@
ReferenceError = initExc("ReferenceError", exc, dict);
SystemError = initExc("SystemError", exc, dict);
MemoryError = initExc("MemoryError", exc, dict);
+ BufferError = initExc("BufferError", exc, dict);
Warning = initExc("Warning", exc, dict);
UserWarning = initExc("UserWarning", exc, dict);
DeprecationWarning = initExc("DeprecationWarning", exc, dict);
Modified: trunk/jython/src/org/python/core/PyException.java
===================================================================
--- trunk/jython/src/org/python/core/PyException.java 2011-03-20 19:56:03 UTC (rev 7253)
+++ trunk/jython/src/org/python/core/PyException.java 2011-03-21 05:01:00 UTC (rev 7254)
@@ -237,6 +237,13 @@
return false;
}
+ if (exc instanceof PyString) {
+ Py.DeprecationWarning("catching of string exceptions is deprecated");
+ } else if (Options.py3kwarning && !isPy3kExceptionClass(exc)) {
+ Py.DeprecationWarning("catching classes that don't inherit from BaseException is not "
+ + "allowed in 3.x");
+ }
+
normalize();
// FIXME, see bug 737978
//
@@ -279,6 +286,16 @@
if (obj instanceof PyClass) {
return true;
}
+ return isPy3kExceptionClass(obj);
+ }
+
+ /**
+ * Determine whether obj is a Python 3 exception class
+ *
+ * @param obj a PyObject
+ * @return true if an exception
+ */
+ private static boolean isPy3kExceptionClass(PyObject obj) {
if (!(obj instanceof PyType)) {
return false;
}
@@ -286,7 +303,8 @@
if (type.isSubType(PyBaseException.TYPE)) {
return true;
}
- return type.getProxyType() != null && Throwable.class.isAssignableFrom(type.getProxyType());
+ return type.getProxyType() != null
+ && Throwable.class.isAssignableFrom(type.getProxyType());
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|