annotate Lib/test/test_exceptions.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents cfc66b8ca202
children cff105a3a384
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
653
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 # Python test set -- part 5, built-in exceptions
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 from test_support import *
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 print '5. Built-in exceptions'
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 # XXX This is not really enough, each *operation* should be tested!
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 def r(name): print name
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 r(AttributeError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 import sys
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 try: x = sys.undefined_attribute
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 except AttributeError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 r(EOFError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 import sys
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 fp = open(TESTFN, 'w')
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 fp.close()
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 fp = open(TESTFN, 'r')
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 savestdin = sys.stdin
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 try:
853
4d58e2c50887 Unmerged except and finally clauses
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
22 try:
4d58e2c50887 Unmerged except and finally clauses
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
23 sys.stdin = fp
4d58e2c50887 Unmerged except and finally clauses
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
24 x = raw_input()
4d58e2c50887 Unmerged except and finally clauses
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
25 except EOFError:
4d58e2c50887 Unmerged except and finally clauses
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
26 pass
653
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 finally:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 sys.stdin = savestdin
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 fp.close()
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
30
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 r(IOError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 try: open('this file does not exist', 'r')
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 except IOError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
34
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 r(ImportError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 try: import undefined_module
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 except ImportError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
38
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 r(IndexError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 x = []
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 try: a = x[10]
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 except IndexError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
43
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 r(KeyError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 x = {}
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 try: a = x['key']
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 except KeyError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 r(KeyboardInterrupt)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 print '(not testable in a script)'
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 r(MemoryError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 print '(not safe to test)'
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
54
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 r(NameError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 try: x = undefined_variable
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 except NameError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
58
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 r(OverflowError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 x = 1
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 try:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 while 1: x = x+x
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 except OverflowError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 r(RuntimeError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 print '(not used any more?)'
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
67
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 r(SyntaxError)
2970
cfc66b8ca202 exec() -> exec
Guido van Rossum <guido@python.org>
parents: 853
diff changeset
69 try: exec '/\n'
653
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
70 except SyntaxError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
71
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
72 r(SystemError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 print '(hard to reproduce)'
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
74
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 r(SystemExit)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 import sys
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 try: sys.exit(0)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 except SystemExit: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
79
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 r(TypeError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
81 try: [] + ()
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 except TypeError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
83
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
84 r(ValueError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
85 try: x = chr(10000)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 except ValueError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
87
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 r(ZeroDivisionError)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 try: x = 1/0
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 except ZeroDivisionError: pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
91
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 unlink(TESTFN)