From M.A.'s post:
If the program throws a checked exception(all subclasses of class Exception excluding RuntimeException ) they must be enclosed by try..catch/try..finally/try..catch..finally statements.
...
or they must be declared in the throws clause of the appropriate method(s). As I'm sure you know - just wanted to be complete.
As for Divakar's original question: false, as m.a. said. Exceptions are always thrown
by the JVM, usually
in response to something in the program. But the program isn't necessarily the
cause. Example - if the program is reading data through a connection across the internet, the read() method is declared with a "throws IOException". If I then reach over to the phone line that connects my computer to the internet, and disconnect it, then the JVM will throw an IOException of some sort. Did the
program cause this, or did I? I'd say that I did.