There's a third thing to consider: how to recover from the error. In many cases, the recovery is something the software has to do itself: e.g., server down, switch to alternate server.
My preference is to consider error reporting as something completely separate from error handling. This is even more the case if you have different classes of users.
My preference is to consider error reporting as something completely separate from error handling. This is even more the case if you have different classes of users.