|
|
|
|
|
by chongli
612 days ago
|
|
Well in a language like Haskell you could solve this with monads and do-notation. The general idiom in Haskell is to use a Maybe or Either monad to capture success/failure and you assume you’re on the happy path. Then you put the error handling at the consumer end of the pipeline when you unwrap the Maybe or Either. I believe Rust has adopted similar idioms. I’ve heard the overall idea referred to as Railway-oriented programming. In C++ you could implement it with exceptions, though they bring in a bunch of their own baggage that you don’t have to deal with when using monads. |
|