Don't use negative numbers for error codes
A warning to programmers - try to understand how people will use your error codes.
This morning, I was confronted with a rather bemusing error message on my WordPress blog:
Ok, so this should "never happen" and yet somehow it has. I wonder what on earth the error code means? I selected the error code and Googled it!
I just copied and pasted the error message into Google and got back a set of meaningless results. Why?
Most search engines treat the minus sign as an "excludes" operator. Suppose I want to search for information about the Python programming language, but I don't want any results about snakes; Google lets me search for "python -snake".
In this case, Google is searching for every error code except for the one I want!
If we remove the -
sign, the correct results are returned.
I've raised this as an issue with the software.
Remember, your error messages should be meaningful to the user. It should contain a clear explanation of what has happened and how the problem can be fixed. It should also be easy to search for information about the error. This message, sadly, fails at all three of those reasonable objectives.
Alex B says:
This is why, when I search for errors, I quote them.
Terence Eden says:
That's nice. How do you get Chrome, Opera, and Firefox to do that automatically? I just right clicked on the selected text and hit search.
Tony Hirst says:
I use quotes too: error code "-32300"
Quotes can also be used to force Google (I assume that's who we're talking about?!) to return links that actually include the search term (which they sometimes don't - indicated by the term with a strikethrough through it as part of a result listing)
Terence Eden says:
Will most users understand how to do that? The default when you select text is to not use quotes. Should we try to get users to change their habits - or make minor changes which make their life easier?
Michal Paszkiewicz says:
As Alex B said, you just put the error code, or the whole error in quotes and it'll be fine. Try searching:
Error code: "-32000"
If there was an issue with negative numbers, we'd have a general problem, since how would you google things like "why is e^(i pi) equal to -1" or any other searches related to negative numbers.
Just use quotes
Terence Eden says:
What are the advantages of using a negative number as an error code?
Alex B says:
http://stackoverflow.com/a/1848900/2740455
To take your side, though, there's no reason other than laziness not to give a human-readable error message when it can be reported to end-users.
Marcus Noble said on k8s.social:
@Edent I have no data to back this us but I suspect that using number error codes in general is harder to search for. Maybe const-styled codes would be better in general (eg. ERR_TIMEOUT) 🤔
EndlessMason said on hachyderm.io:
@Edent
Or maybe even put the error in the message in the first place?
Heck, you can even include a hypertext link to the docs about that error.
I mean you're a web page, not an embedded dos program, act like it.