do not use bare except

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

Metadata

ID: python-best-practices/no-bare-except

Language: Python

Severity: Warning

Category: Best Practices

Description

Avoid bare except. Try to always use specialized exception names in except blocks.

Non-Compliant Code Examples

try:
  print("foo")
except:  # use a specialized exception name
  print("bar")

Compliant Code Examples

try:
    parsed = json.loads(response.body)
except json.JSONDecodeError:
    log.warning("Test skips request responded with invalid JSON '%s'", response.body)
    return
try:
  pass
except (TypeError, ValueError):
    log.debug(
        (
            "received invalid x-datadog-* headers, "
            "trace-id: %r, parent-id: %r, priority: %r, origin: %r, tags:%r"
        ),
        trace_id,
        parent_span_id,
        sampling_priority,
        origin,
        tags_value,
    )
try:
    foo()
except MyError as e:
    bar()
try:
  print("foo")
except MyException:
  print("bar")
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