Initiatory Journey from Exceptions to Composable Error Types
summary
A migration story from Java exceptions to safer error types: Option, Lift’s Box, and finally a custom error ADT inspired by Scalaz, applied over five years in the Rudder product. It details concrete problems (ambiguous Box semantics, loss of failure origin), tools tried (Option, Either, Box, Scalaz Validation/applicative), and concludes that ambiguity harms teams, so they implemented and open‑sourced a typed failure record (message + optional cause) with small syntax helpers.
AI-written summary · about
chapters (19)
- 0:00Error handling intro
- 3:13Technical vs business errors
- 6:20Problems with exceptions
- 10:36Compiler-enforced checks
- 11:45Algebraic data types for errors
- 13:36Option type limits
- 14:18Either type constraints
- 16:04Pure error handling
- 17:53Scala Try critique
- 18:36Box alternative
- 21:04Rudder’s Box experience
- 23:10Unambiguous type semantics
- 24:57Composable error theory
- 27:48Validation vs disjunction
- 30:45Dependent errors handling
- 32:10Practical error enrichment
- 33:34Custom generic error type
- 36:23Best practices
- 36:44Q&A
related talks
17mA closer look into error handling techniques
46mSystematically handling errors in your code to make them useful
27mUsing Monads for Elegant Error Handling
25mLeveraging (algebraic data) types to make your UI rock solid
31mProgramming Safely in an Uncertain World
01h 01mModern C++ Error Handling
38mClass up your config
49mError handling architecture: clean, rapid, reactive approach
