Internet Alchemy: Programming without exceptions. I haven't followed all the links yet, but this seems pretty much like my philosophy on exceptions.
If you have a function that does one thing, and there's a clear way for it to fail in that task, and there aren't lots of ways for it to fail where you need to distinguish exactly how it failed, and there's bandwidth (which I'll explain in a bit) in the function's return value for a failure value (or maybe in a parameter list if you're passing pointers (or "by ref" arguments) around), then return it from the function rather than using exceptions, which like the post at Internet Alchemy points out, are essentially "non-local gotos".
Sorry for the run on sentence. By bandwidth I mean something like if a function is only supposed to return positive integers, an easy way to signal failure is by returning zero or a negative number. Or if your function is supposed to return an object or a pointer to something, make it return null.
malloc is a choice example of this. Returning null is an easy and unambiguous way for it to tell you it failed.
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):