Skip to content

Commit

Permalink
Added try-except-raise message example (#6540)
Browse files Browse the repository at this point in the history
Co-authored-by: Vladyslav Krylasov <vladyslav.krylasov@gmail.com>
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
  • Loading branch information
4 people committed May 9, 2022
1 parent f020b2f commit cec1c6a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
4 changes: 4 additions & 0 deletions doc/data/messages/t/try-except-raise/bad.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
try:
1 / 0
except ZeroDivisionError as e: # [try-except-raise]
raise
18 changes: 18 additions & 0 deletions doc/data/messages/t/try-except-raise/details.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
There is a legitimate use case for re-raising immediately. E.g. with the following inheritance tree::

+-- ArithmeticError
+-- FloatingPointError
+-- OverflowError
+-- ZeroDivisionError

The following code shows valid case for re-raising exception immediately::

def execute_calculation(a, b):
try:
return some_calculation(a, b)
except ZeroDivisionError:
raise
except ArithmeticError:
return float('nan')

The pylint is able to detect this case and does not produce error.
8 changes: 8 additions & 0 deletions doc/data/messages/t/try-except-raise/good.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# The try except might be removed entirely:
1 / 0

# Or another more detailed exception can be raised:
try:
1 / 0
except ZeroDivisionError as e:
raise ValueError("The area of the rectangle cannot be zero") from e

0 comments on commit cec1c6a

Please sign in to comment.