On Thursday, 6 February 2014 at 22:15:11 UTC, Brad Anderson wrote:
Personally I don't think bad user input qualifies as an
exceptional case because it's expected to happen and the
program is expected to handle it (and let the user know) when
it does. That's just a matter of taste though.
Hmm... then what _does_ qualify as exceptional in your opinion?
A logic error (i.e. a mistake on the programmers side) doesn't,
IMO, it should abort instead. On the other hand, there is the
class of situations where e.g. a system call returns an error
(say, "permission denied" when opening a file, or out of disk
space). Or more generally, an external service, like a database
or a remote server. However, I can't see how these are
fundamentally different from invalid user input, and indeed,
there's often not even a clear separation, e.g. when a user asked
you to read a file they don't have access to.
So, what's left then?