“Aaah, my program crashed! Now I'll have to randomly click icons until the problem goes away!”
“This popup says ‘Connection lost, please check your Ethernet cable’. Would it be this cable that’s fallen to the floor?”
sigh OK, that’s enough smug superiority for now. There are of course reasons for this behaviour. Too much software generates too many useless error messages:
- A common method is by not catching the error at all and instead getting a stack dump from the underlying runtime system, which may be useful to a debugging programmer, but not to a working user.
- Or, if the programmer has bothered to trap the error, the error message is still mostly intended for debugging (“Stack overflow in function getResCompFlow().”) and does not suggest to the user either how to avoid it or how to proceed from a bad state.
- And then we have the opposites: the too brief message (“Syntax error”) vs dozens of long lines of information, with the possibly useful message hidden in the middle.
- Many error messages do a very bad job of analysing the problem situation and either suggest something very vague (“Error, please retry”), or something completely incorrect. (“Couldn’t connect, please check your Ethernet cable.” Actually I mistyped my password.)
- And so on…