I’ve always found C++'s “trend” of handling normal or non-exceptional system errors with exceptions lackluster (and I’m being charitable). Overall trimming things down to (basically) passing around a couple integers and telling the user to check their manual is much better, much less error prone, and much more efficient and deterministic.


For fuck’s sake people, stop localizing your error messages.
I have no problem with localizing error messages… I just think an error handler is the absolutelest wrong place to do it. Localize it in the manual. Appendix C page 3, “Spanish / Español”. Error routines should print machine-readable information. A couple numbers. Maybe a smiley (or, given the context, frownley).