Retrying HTTP Requests with Rust

How to implement retry logic for HTTP requests in Rust using reqwest and the again crate. Handling network failures, rate limiting, and JSON parsing errors with exponential backoff.

June 25, 2022 Â· 10 min

TIL: Python Exception Handling with raise from

TIL 2020-08-06 Python’s raise statement has a from clause - This preserves full tracebacks when re-raising exceptions, providing better debugging information. The Python raise statement documentation - Official documentation covering all forms of the raise statement including exception chaining.

August 6, 2020 Â· 1 min

TIL: Python Raise Statement and Traceback Preservation

Python Exception Handling Python’s Raise Statement with From Clause Python’s raise statement has a from clause, to preserve full tracebacks The Python raise statement Critical for maintaining debugging information when re-raising exceptions Preserves the original exception context and traceback chain Exception Chaining Syntax Basic Exception Chaining 1 2 3 4 5 6 try: # Some operation that might fail risky_operation() except SomeException as e: # Re-raise with context preserved raise NewException("Custom message") from e Benefits of Exception Chaining Full Traceback Preservation: Maintains complete error history Better Debugging: Shows both original and current exception contexts Clear Error Propagation: Makes it obvious how errors propagated through code Professional Error Handling: Industry best practice for exception management Exception Handling Best Practices When to Use Exception Chaining Converting between exception types (e.g., library exceptions to domain exceptions) Adding context to low-level errors Creating more meaningful error messages for users Maintaining debugging information in complex call stacks Exception Suppression 1 2 # Suppress original exception (use sparingly) raise NewException("Message") from None Debugging Benefits Helps identify root cause of complex errors Provides complete context for error investigation Essential for production debugging and error monitoring Improves error reporting and logging quality

August 6, 2020 Â· 1 min