Hacker News new | ask | show | jobs
by catiopatio 1041 days ago
That sounds incredibly ugly and painful.
2 comments

It isn't in practice. Only a minority of methods actually need it.

It's certainly far, far better than having to add exactly the same check after every method call. Which is only what you need to do if you're working in a situation where exceptions are not an option.

“railway oriented programming” (aka nomadic effects) don’t require that.

As a bonus, you can’t accidentally fail to catch an exception, and you can model much more complex error handling than just ”catch and raise.”

For example, it’s trivial to implement error recovery, where you implicitly collect all errors that occurred and then can report them once at the end.

I'll add that C# also has using statements that dispose the object when the current scope exits (including if it exits due to an exception) this significantly cuts down on ugliness .