Which programming language(s) are you using?
Edit 1:
In regards to Java, they're a bit mixed. In general, an error will happen when you're trying to compile the program - it won't compile, so it won't even generate the bytecode for the JVM to run.
An exception happens if the program does compile correctly, but something goes bad as it is being run. In some languages, things like dividing by zero or having a bad pointer will be considered an 'error', but in Java these situations throw exceptions.
Exceptions are good because you can use try/catch to handle them, and let your program continue running or exit 'gracefully' (save any files that need saving, tell the user it's quitting and what went wrong, etc.).
If you run into a problem that doesn't throw an exception, but if it happens you want your program to handle it as if it were something going wrong, you can of course 'throw' your own exceptions, and even catch them. To do this, you derive from the exception class (java.lang.Exception).
Edit 2: I looked into the difference between checked and unchecked exceptions.
Unchecked exceptions are when you make a mistake. The program doesn't work properly, because you didn't do it right. This is often caused by silly things like swapping the inputs of a method, or even enormous things like forcing the entire control flow into a complicated series of loops without any method calls (everything being inline), and getting confused about which code is in which loop. I suppose deriving the wrong class can also count as this.
Checked exceptions are things that you can check for, and handle, on purpose. For example, if you make a text adventure game with some objects belonging to the player, and you somehow find yourself looking for an item in the player's inventory that isn't there, you can throw an exception that the item isn't in the player's inventory. That's something that can totally happen.
It's worth noting that in Java, unchecked exceptions derive from the RuntimeException class, whereas checked exceptions derive from plain Exception.