Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: python-best-practices/no-silent-exception

Language: Python

Severity: Error

Category: Best Practices

Description

Using the pass statement in an exception block ignores the exception. Exceptions should never be ignored. Instead, the user must add code to notify an exception occurred and attempt to handle it or recover from it.

The exception to this rule is the use of StopIteration or StopAsyncIteration when implementing a custom iterator (as those errors are used to acknowledge the end of a successful iteration).

Non-Compliant Code Examples

a = 2
b = 0
try:
  c = a / b
# should use a regular statement and not ignore the exception
except Exception as e:
  pass

Compliant Code Examples

a = 2
b = 0
try:
  c = a / b
except ZeroDivisionError as e:
  print(e)
  pass

try:
  get_config_values()
except FileNotFoundError:
  # (Comment explaining why no handling happens here)
  pass

try:
  do_iteration()
# Handling the iterator's successful conclusion is OK
except StopIteration:
  pass

try:
  do_async_iteration()
# Handling the iterator's successful conclusion is OK
except StopAsyncIteration:
  pass
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Security

PREVIEWING: guacbot/translation-pipeline