blob: c1bd89a6fa69b9330dff351ae1cbb80da35a9c04 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# test subclassing exceptions and providing __new__
class Dummy(BaseException):
pass
class GoodException(BaseException):
def __new__(cls, *args, **kwargs):
print("GoodException __new__")
return Dummy(*args, **kwargs)
class BadException(BaseException):
def __new__(cls, *args, **kwargs):
print("BadException __new__")
return 1
try:
raise GoodException("good message")
except BaseException as good:
print(type(good), good.args[0])
try:
raise BadException("bad message")
except Exception as bad:
# Should be TypeError 'exceptions must derive from BaseException'
print(type(bad), bad.args[0])
try:
def gen():
yield
gen().throw(BadException)
except Exception as genbad:
# Should be TypeError 'exceptions must derive from BaseException'
print(type(genbad), genbad.args[0])
|