[Python-checkins] r43302 - in python/trunk: Lib/test/test_generators.py Objects/genobject.c

phillip.eby python-checkins at python.org
Sat Mar 25 01:05:53 CET 2006


Author: phillip.eby
Date: Sat Mar 25 01:05:50 2006
New Revision: 43302
Modified:
 python/trunk/Lib/test/test_generators.py
 python/trunk/Objects/genobject.c
Log:
Support throw() of string exceptions.
Modified: python/trunk/Lib/test/test_generators.py
==============================================================================
--- python/trunk/Lib/test/test_generators.py	(original)
+++ python/trunk/Lib/test/test_generators.py	Sat Mar 25 01:05:50 2006
@@ -1545,6 +1545,9 @@
 >>> g.throw(ValueError, TypeError(1)) # mismatched type, rewrapped
 caught ValueError (1)
 
+>>> g.throw(ValueError, ValueError(1), None) # explicit None traceback
+caught ValueError (1)
+
 >>> g.throw(ValueError(1), "foo") # bad args
 Traceback (most recent call last):
 ...
@@ -1592,8 +1595,7 @@
 >>> f().throw("abc") # throw on just-opened generator
 Traceback (most recent call last):
 ...
-TypeError: exceptions must be classes, or instances, not str
-
+abc
 
 Now let's try closing a generator:
 
Modified: python/trunk/Objects/genobject.c
==============================================================================
--- python/trunk/Objects/genobject.c	(original)
+++ python/trunk/Objects/genobject.c	Sat Mar 25 01:05:50 2006
@@ -249,7 +249,10 @@
 			Py_INCREF(typ);
 		}
 	}
-	else {
+
+	/* Allow raising builtin string exceptions */
+
+	else if (!PyString_CheckExact(typ)) {
 		/* Not something you can raise. throw() fails. */
 		PyErr_Format(PyExc_TypeError,
 			 "exceptions must be classes, or instances, not %s",


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /