summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-12-03 20:01:02 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-12-03 20:01:02 (GMT)
commit44eeaec173d66769835e4f8a2a0ad7e605fe6aef (patch)
tree64c0a3b6fdddbbd79d15a9b7ce1021f470701566 /Lib
parentcbcfe4f3e47d420742f726415705b116672d6779 (diff)
downloadcpython-44eeaec173d66769835e4f8a2a0ad7e605fe6aef.zip
cpython-44eeaec173d66769835e4f8a2a0ad7e605fe6aef.tar.gz
cpython-44eeaec173d66769835e4f8a2a0ad7e605fe6aef.tar.bz2
Patch #1537 from Chad Austin
Change GeneratorExit's base class from Exception to BaseException (This time I'm applying the patch to the correct sandbox.)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/exception_hierarchy.txt10
-rw-r--r--Lib/test/test_generators.py13
2 files changed, 18 insertions, 5 deletions
diff --git a/Lib/test/exception_hierarchy.txt b/Lib/test/exception_hierarchy.txt
index a03f7bb..1be5ce0 100644
--- a/Lib/test/exception_hierarchy.txt
+++ b/Lib/test/exception_hierarchy.txt
@@ -1,8 +1,8 @@
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+ +-- GeneratorExit
+-- Exception
- +-- GeneratorExit
+-- StopIteration
+-- StandardError
| +-- ArithmeticError
@@ -33,10 +33,10 @@ BaseException
| +-- SystemError
| +-- TypeError
| +-- ValueError
- | | +-- UnicodeError
- | | +-- UnicodeDecodeError
- | | +-- UnicodeEncodeError
- | | +-- UnicodeTranslateError
+ | +-- UnicodeError
+ | +-- UnicodeDecodeError
+ | +-- UnicodeEncodeError
+ | +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index 5d50187..ce3db72 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -1658,6 +1658,19 @@ And finalization:
exiting
+GeneratorExit is not caught by except Exception:
+
+>>> def f():
+... try: yield
+... except Exception: print 'except'
+... finally: print 'finally'
+
+>>> g = f()
+>>> g.next()
+>>> del g
+finally
+
+
Now let's try some ill-behaved generators:
>>> def f():