In my experience they are mostly the same thing: an unexpected reaction of the AUT. Sometimes the difference is a matter of degree of reaction. It is really depends on your company's procedure and your requirements definition.
Have you tried searching the forum for other discussion threads? I know this has been brought up before.
Personally, I try to reserve "error" to refer to "error handling." So:
Error: I attack the software by not entering all the required information before clicking OK. I get an error message (i.e. "Last Name cannot be left blank"). This is expected and appropriate. Ship it.
Bug: I attack the software by not entering all the required information before clicking OK. The system continues despite the incorrect data only to crash later on or it gives a really indecipherable message (i.e. "error in line xxx of module gobbledygook. error number 573, cannot parse... etc."), or it locks up... Those are unexpected and unacceptable reactions to the attack. Fix it.
I don't know if that fits any "official" definition. That is my standard.
Terminology is a variable thing, but this is the way I view it.
A bug (I hate the word) or Defect (proper name) is simply an unexpected identified behaviour of a System or Software.
An error is simply an event that occured that may / or may not have an explanation.
For example if you stop a DB and try to access it, you get an error message. This is completely expected. A bug is when you get a error message when the DB is running. Your expectation is that you should be able access the DB. This could be caused by an incorrect configuration/poor code... whatever.