Hacker News new | ask | show | jobs
by germandiago 23 hours ago
Or you can assume exceptions can be thrown and capture and log coming from a base class in a centralized place (and probably refine incrementally what to do with each group without dirtying all the logic inside the functions themselves).

For Rust result in C++ you have optional and expected. But they have their own problems, like rewriting function signatures all the way up the stack if you notice an error was possible when adding code.

1 comments

But with that design, you’re quite limited in what you can usefully do once you catch that exception.
Well, I am not sure what you mean exactly.

But it enables incremental addition of errors and you can decide later what to do exactly, so I still tend to see it as an advantage.

It is like defer the error handling and centralize later.

If you want to handle an error in place immediately, prpbably it is not an exception what you want.

But if you need it is a fatal error, I do not see any harm, since the most you will do with that exception is to unwind and log or telemetry or whatever to tracke the errors.