Skip to content
← All tracks

Failure by Design

Python

Exception hierarchies as API, chaining, `ExceptionGroup`, retry budgets, deprecation and typing the error path.

This track is written for Python, which isn't the mode you're browsing in.

0 / 8 solved · 10 articles
  1. 1. Your exception hierarchy is an API Read
  2. 2. Not solved yet. Exception hierarchies as API design
  3. 3. Chaining: raise ... from, __cause__, __context__, from None Read
  4. 4. Not solved yet. Exception chaining: raise ... from
  5. 5. Bare except, blind except Exception, and where to catch Read
  6. 6. Not solved yet. Bare except, blind except Exception, and where to catch
  7. 7. ExceptionGroup and except* Read
  8. 8. Not solved yet. ExceptionGroup, split() and except*
  9. 9. Not solved yet. Failure aggregation over batches
  10. 10. Retry, backoff, and the difference between retryable and terminal Read
  11. 11. Not solved yet. Retry, backoff, and retryable vs terminal
  12. 12. Deprecating public API: @warnings.deprecated Read
  13. 13. Not solved yet. Deprecating public API: @warnings.deprecated
  14. 14. NoReturn, Never, and functions that do not come back Read
  15. 15. Typing the error path Read
  16. 16. Not solved yet. Typing the error path: Result, attempt and Never
  17. 17. warnings in libraries: categories, stacklevel, and filters Read
  18. 18. Reading modern Python error messages Read

Check yourself

4 questions · one attempt each

These do not count toward finishing the track. They are here to catch the things that are easy to read past.

0 / 4

What does this print?

def add(x, acc=[]):
    acc.append(x)
    return acc

print(add(1), add(2), add(3))
Question 1 of 4