Do not ignore Exception with a pass statement

이 페이지는 아직 한국어로 제공되지 않으며 번역 작업 중입니다. 번역에 관한 질문이나 의견이 있으시면 언제든지 저희에게 연락해 주십시오.

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
except Exception as e:
  pass  # should use a regular statement and not ignore the exception

Compliant Code Examples

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

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

try:
  do_async_iteration()
except StopAsyncIteration: # Handling the iterator's successful conclusion is OK
  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 Analysis