We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Talks - Bruce Eckel: Functional Error Handling
Learn how functional error handling with Result types improves code reliability and composition compared to exceptions, with practical examples using Python's returns library.
-
Functional error handling provides better composability compared to traditional exception handling by making errors part of the type system
-
The Result type pattern separates successful values from errors, allowing clear distinction between recoverable errors and unrecoverable panics
-
Traditional exceptions have several drawbacks:
- Not part of the type system
- Break composition
- Destroy partial calculations in larger computations
- Mix different categories of errors
- Make error handling implicit
-
The
returns
library for Python implements functional error handling through:- Result types to wrap success/failure values
- Bind operations for function composition
- Type checking integration
- Decorators to convert exception-throwing functions
-
Benefits of functional error handling:
- Explicit error handling in types
- Better composability of functions
- Preservation of partial calculations
- Clearer distinction between error categories
- Static type checking of error handling
-
Error handling belongs in the language domain rather than operating system level for better integration
-
The approach requires some tradeoffs:
- More verbose syntax
- Needs type system support
- May still need to handle some exceptions
- Requires mindset shift from traditional exception handling
-
This pattern is becoming more common in modern languages like Rust and Kotlin which have built-in support for Result types