diff options
author | Christian Heimes <christian@cheimes.de> | 2007-12-03 20:01:02 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2007-12-03 20:01:02 (GMT) |
commit | 44eeaec173d66769835e4f8a2a0ad7e605fe6aef (patch) | |
tree | 64c0a3b6fdddbbd79d15a9b7ce1021f470701566 /Lib | |
parent | cbcfe4f3e47d420742f726415705b116672d6779 (diff) | |
download | cpython-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.txt | 10 | ||||
-rw-r--r-- | Lib/test/test_generators.py | 13 |
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(): |