Earlier quoted context omitted.
There is a huge difference: the first is an _exception_, which: - Unwinds the stack to a try/catch or exception handler, making exceptions practically difficult to deal with in concurrent programming. - If unchecked, can be ignored, silently propagating during stack unwinding. - If checked, infects the call stack with 'throws' annotations. The second is a normal return value, with no try/catch needed, handling the er…
I genuinely disagree. There is no difference between a checked exception and a Result. - In concurrent programming uncaught exceptions won’t leave the future. Both values are available to you just like Results. I also don’t think arguments for concurrent programming are valid though. 99% of all code is single threaded. - It is checked. - Result infects the call stack as well. - handling the error case with a checked…
val a = a();
And start the stack unwinding. The `try/catch` is not mandatory to call a().