blob: 34f740de4c9df03c51f7201d122eabc5049fc6e4 (
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
|
# pylint:disable=too-few-public-methods,no-init,import-error,missing-docstring, not-callable, useless-object-inheritance,import-outside-toplevel
"""test pb with exceptions and old/new style classes"""
class ValidException(Exception):
"""Valid Exception."""
class OldStyleClass:
"""Not an exception."""
class NewStyleClass(object):
"""Not an exception."""
def good_case():
"""raise"""
raise ValidException('hop')
def good_case1():
"""zlib.error is defined in C module."""
import zlib
raise zlib.error(4)
def good_case2():
"""decimal.DivisionByZero is defined in C on Python 3."""
import decimal
raise decimal.DivisionByZero(4)
def good_case3():
"""io.BlockingIOError is defined in C."""
import io
raise io.BlockingIOError
def bad_case0():
"""raise"""
# +2:<3.0:[nonstandard-exception]
# +1:>=3.0:[raising-non-exception]
raise OldStyleClass('hop')
def bad_case1():
"""raise"""
raise NewStyleClass() # [raising-non-exception]
def bad_case2():
"""raise"""
# +2:<3.0:[nonstandard-exception]
# +1:>=3.0:[raising-non-exception]
raise OldStyleClass('hop')
def bad_case3():
"""raise"""
raise NewStyleClass # [raising-non-exception]
def bad_case4():
"""raise"""
raise NotImplemented('hop') # [notimplemented-raised]
def bad_case5():
"""raise"""
raise 1 # [raising-bad-type]
def bad_case6():
"""raise"""
raise None # [raising-bad-type]
def bad_case7():
"""raise list"""
raise list # [raising-non-exception]
def bad_case8():
"""raise tuple"""
raise tuple # [raising-non-exception]
def bad_case9():
"""raise dict"""
raise dict # [raising-non-exception]
def unknown_bases():
"""Don't emit when we don't know the bases."""
from lala import bala # pylint: disable=import-outside-toplevel
class MyException(bala):
pass
raise MyException
def exception_instance_regression():
"""Exceptions have a particular class type"""
try:
int("9a")
except ValueError as exc:
raise exc
def reusing_same_name_picks_the_latest_raised_value():
class Error(Exception):
"""some error"""
exceptions = tuple([ValueError, TypeError])
try:
raise ValueError
except exceptions as exc: # pylint: disable=catching-non-exception
# https://github.com/PyCQA/pylint/issues/1756
exc = Error(exc)
if exc:
raise exc
|