Pessoal.
Como vou saber se uma exceção é lançada pela JVM ou pela API ?
Não vale responder: Ah! Se for verificada é pela api, caso contrário é pela JVM.
Esta resposta não é correta porque NumberFormatException por exemplo é uma exceção não verificada que não é lançada pela JVM. Pelo menos assim está no livro Katy Sierra.
Nem na documentação tem esta especificação e eu tenho que saber para o exame.
valeu galera !
Todas as classes que vem de Exception são da API.
A diferença é que NumberFormat é uma RumtimeException, que é lançada durante tempo de execução do sistema, mas é possivel de captura-las
As classes que descendem de Erro (Se não me engano), não podem ser capturadas, tem a ver com o ambiente ou falha interna na JVM.
Exceções lançadas pela JVM normalmente são aquelas que são mais fáceis de serem determinadas por ela mesma, como algumas exceções derivadas de RuntimeException, como ArrayIndexOutOfBoundsException, NullPointerException ou ClassCastException ou referentes a problemas que ocorreram com ela (tipicamente as exceções derivadas de java.lang.Error), como OutOfMemoryError ou StackOverflowError.
(A propósito, nem sabia que tal coisa caía na prova, se é que cai. Não tive que responder nada parecido.)
Error é lançado pela JVM e nao tem solução.
Exceptions são para serem lançadas e tratadas.
Ola Mark blza 
Não tenho muito a acrescentar, pois os colegas ja disseram tudo, Exceções de jvm, são as lançadas em tempo de execução que descende de RuntimeException e Error, ja as verificadas você deve declara ou tratar, estas são derevidas de Exception.
Um outro colega teve a mesma duvida e o post dele me ajudou, dê uma olhadinha.
http://www.guj.com.br/posts/list/134269.java
Quanto a NumberFormatException
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/NumberFormatException.html
Abraços.