|
|
|
|
|
by JamesSwift
2349 days ago
|
|
Because the error/success is encoded in the type, you are forced to handle the error case. If you aren't also wrapping throwable functions in `try/catch` then you have a lot of unhandled error cases. If you know that something truly isn't going to error then you can just force cast it as `foo as Success<T>`. That will still blow up at runtime if its not a `Success`. Alternatively, you could introduce a monadic chaining that is able to pipe `Result<T>` objects through many functions then handle at the end. |
|