summaryrefslogtreecommitdiff
path: root/tests/functional/i/invalid/e/invalid_exceptions_caught.py
blob: c0298a06ece303046bc45c9887dbf86837221917 (plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# pylint: disable=missing-docstring, too-few-public-methods, useless-object-inheritance, use-list-literal
# pylint: disable=too-many-ancestors,  import-error, multiple-imports,wrong-import-position
from __future__ import print_function

import socket, binascii, abc, six

class MyException(object):
    """Custom 'exception'."""

class MySecondException(object):
    """Custom 'exception'."""

class MyGoodException(Exception):
    """Custom exception."""

class MySecondGoodException(MyGoodException):
    """Custom exception."""

class SkipException(socket.error):
    """Not an exception for Python 2, but one in 3."""

class SecondSkipException(SkipException):
    """Also a good exception."""

try:
    1 + 1
except MyException:  # [catching-non-exception]
    print("caught")

try:
    1 + 2
# +1:[catching-non-exception,catching-non-exception]
except (MyException, MySecondException):
    print("caught")

try:
    1 + 3
except MyGoodException:
    print("caught")

try:
    1 + 3
except (MyGoodException, MySecondGoodException):
    print("caught")

try:
    1 + 3
except (SkipException, SecondSkipException):
    print("caught")

try:
    1 + 42
# +1:[catching-non-exception,catching-non-exception]
except (None, list()):
    print("caught")

try:
    1 + 24
except None: # [catching-non-exception]
    print("caught")

EXCEPTION = None
EXCEPTION = ZeroDivisionError
try:
    1 + 46
except EXCEPTION:
    print("caught")

try:
    1 + 42
# +1:[catching-non-exception,catching-non-exception,catching-non-exception]
except (list([4, 5, 6]), None, ZeroDivisionError, 4):
    print("caught")

EXCEPTION_TUPLE = (ZeroDivisionError, OSError)
NON_EXCEPTION_TUPLE = (ZeroDivisionError, OSError, 4)

try:
    1 + 42
except EXCEPTION_TUPLE:
    print("caught")

try:
    1 + 42
except NON_EXCEPTION_TUPLE: # [catching-non-exception]
    print("caught")

from missing_import import UnknownError
UNKNOWN_COMPONENTS = (ZeroDivisionError, UnknownError)

try:
    1 + 42
except UNKNOWN_COMPONENTS:
    print("caught")

try:
    1 + 42
except binascii.Error:
    print('builtin and detected')

try:
    1 + 45
except object: # [catching-non-exception]
    print('caught')

try:
    1 + 42
except range: # [catching-non-exception]
    print('caught')


class HasErrorInMRO(six.with_metaclass(abc.ABCMeta, Exception)):
    pass


class Second(HasErrorInMRO):
    pass


try:
    raise Second
except Second:
    pass


class SomeBase(UnknownError):
    pass


EXCEPTIONS = (SomeBase, ValueError)

try:
    raise ValueError
except EXCEPTIONS:
    pass