Cython has moved to github.

cython-devel

view tests/run/moduletryexcept.pyx @ 3128:6834b6f640ae

Python 3 except clauses (ticket #519)
author Lisandro Dalcin <dalcinl@gmail.com>
date Sat Mar 13 19:39:43 2010 -0300 (2 years ago)
parents ccd5a5fdc482
children 1dadfbd04642
line source
1 __doc__ = u"""
2 >>> a
3 2
4 >>> b
5 3
6 >>> exc[0].__class__.__name__
7 'AttributeError'
8 >>> exc[1].__class__.__name__
9 'KeyError'
10 >>> exc[2].__class__.__name__
11 'IndexError'
12 >>> exc[3].__class__.__name__
13 'ValueError'
14 >>> exc[3] is val
15 True
16 """
18 a = 0
20 try:
21 raise KeyError
22 except AttributeError:
23 a = 1
24 except KeyError:
25 a = 2
26 except:
27 a = 3
29 b = 0
31 try:
32 raise IndexError
33 except AttributeError:
34 b = 1
35 except KeyError:
36 b = 2
37 except:
38 b = 3
40 exc = [None]*4
42 try:
43 raise AttributeError
44 except AttributeError as e:
45 exc[0] = e
46 except KeyError as e:
47 exc[0] = e
48 except IndexError as e:
49 exc[0] = e
50 except:
51 exc[0] = e
53 try:
54 raise KeyError
55 except AttributeError as e:
56 exc[1] = e
57 except KeyError as e:
58 exc[1] = e
59 except IndexError as e:
60 exc[1] = e
61 except:
62 exc[1] = e
64 try:
65 raise IndexError
66 except AttributeError as e:
67 exc[2] = e
68 except KeyError as e:
69 exc[2] = e
70 except IndexError as e:
71 exc[2] = e
72 except:
73 exc[2] = e
75 val = None
76 try:
77 try:
78 try:
79 raise ValueError
80 except AttributeError as e:
81 exc[3] = e
82 except KeyError as e:
83 exc[3] = e
84 except IndexError as e:
85 exc[3] = e
86 except:
87 raise
88 except (AttributeError,
89 KeyError,
90 IndexError,
91 ValueError) as e:
92 val = e
93 raise e
94 except Exception as e:
95 exc[3] = e