Normally you won't ever need to reset @ERROR, but I used to get problems with some COM stuff which would set the error if there was a problem, but wouldn't reset it when the action succeeded. So if a failed action was followed by a successful one @ERROR would still be set.

It's pretty rare, and I haven't come across it in quite a while.