rspec/rules/S5713/python/rule.adoc
Fred Tingaud 16f6c0aecf
Inline adoc when include has no additional value (#1940)
Inline adoc files when they are included exactly once.

Also fix language tags because this inlining gives us better information
on what language the code is written in.
2023-05-25 14:18:12 +02:00

53 lines
1.3 KiB
Plaintext

== Why is this an issue?
Repeating an exception class in a single ``++except++`` statement will not fail but it is not what the developer intended. Either the class is not the one which should be caught, or this is dead code.
Having a subclass and a parent class in the same ``++except++`` statement is also useless. It is enough to keep only the parent class.
This rule raises an issue when an exception class is duplicated in an ``++except++`` statement, or when an exception class has a parent class in the same ``++except++`` statement.
=== Noncompliant code example
[source,python]
----
try:
raise NotImplementedError()
except (NotImplementedError, RuntimeError): # Noncompliant. NotImplementedError inherits from RuntimeError
print("Foo")
try:
raise NotImplementedError()
except (RuntimeError, RuntimeError): # Noncompliant.
print("Foo")
----
=== Compliant solution
[source,python]
----
try:
raise NotImplementedError()
except RuntimeError:
print("Foo")
----
== Resources
* Python Documentation - https://docs.python.org/3/tutorial/errors.html#handling-exceptions[Handling Exceptions]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
include::../highlighting.adoc[]
endif::env-github,rspecator-view[]