ThrowCodeError vs ThrowUserError
justdave at bugzilla.org
Thu Apr 15 08:10:46 UTC 2004
Continuing some discussion from bug 238865...
I'm probably opening a can of worms here, but I have some prior
experiences here that lead me to want to change what we've been using as
our guidelines for when to use ThrowCodeError and when to use
The rule we've been using has been pretty much:
"When in doubt, it's a code error, since it's better for usability to
blame the program when it's the user's fault than blame the user when
it's the program's fault. Programs don't have feelings, but users do,
and blaming users wrongly hurts and frustrates them."
However, I would postulate that blaming the program wrongly hurts the
developers or the admin if the program actually isn't broken. We
perhaps need a third way to safely blame neither?
The current text surrounding all error messages thrown with
ThrowCodeError basically says that Bugzilla is broken, and requests that
you save the page and mail it to the maintainer.
When I was working for AOL on the project we were doing for "Zippy", the
"Zippy" folks would file a bug every time they saw a Code Error screen.
We had hundreds of bugs filed because of it, and most were situations
where they typed something funny in a text box or typoed a URL, and it
really WAS the user's fault, just not something the program could
squarely place the blame on (because it could have been a link on a web
page, too). From what I've seen, I would say that the folks at "Zippy"
are fairly typical of what you'd find in most corporate environments.
That Code Error screen basically says "It's broken" and they'll say "we
should be using some other bug tracker if this one is so broken that
we're getting these all the time."
What I posted on that bug is that ThrowUserError does not automatically
blame the user. ThrowUserError does nothing but put your error message
in a red box. You can make the error say whatever you want when
designing the template for that error. So that error is not blaming the
user unless you tell it to when you create the error template. A
carefully constructed error message can opt out of blaming anyone.
With ThrowCodeError, you don't get that option. "Bugzilla has suffered
an internal error" it says in bold letters at the top. Those are mighty
scary words. It asks the user to mail the page to the maintainer. This
also means in a situation where the user shouldn't be mailing the page
to the maintainer, we shouldn't be using that type of error.
Thoughts from the peanut gallery?
Dave Miller Project Leader, Bugzilla Bug Tracking System
More information about the developers