Or you can just select to hold that package for updates in a package manager in a competent distro that actually gets needed security and usability updates.
Doesn't help that some ""stable"" packages are outright broken and won't be fixed until the next release (ie. MinGW is stuck on a broken version of 8.3 which has a buttload of compiler bugs I keep hitting)
Usually documentation tends to have this, or you can look at the function and immediately know what it will return, whereas with exceptions any passthrough errors are transparent.
That's fairly rude to the guy, and doesn't make your point any stronger.
I've worked with exceptions before, it leads to try/catch spaghetti code.
You can't possibly know instantly all the exceptions to handle for a function (given it calls other functions w/ exceptions), whereas, if it returns a fixed bunch of error codes, then you can know why that specific function failed and handle appropriately.
Doesn't help that (language) exceptions typically have awful codegen.