do not use bare except

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")