If you're driving somewhere, and you have bad directions, you won't get there, because the directions are faulty. That's really your fault, because you've taken directions that were faulty. That's like an Exception caused by programming. If you don't arrive where you're going because of bad directions, that's not the car's fault.
On the other hand, your car might break down, or blow up, or a tire may blow, and you can't get to where you're going. That's really an error with the car, not the directions you've been given. In the
Java world, that would be like a JVM error - the JVM error just sorta blew up doing what it's supposed to do.
Both stop you from getting to where you're going, but one has more to do with the programmer(driver), while the other had more to do with the car itself (the JVM).
-Cameron McKenzie