ThrowCodeError vs ThrowUserError

David Miller justdave at
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 mailing list