pessoal lendo o cap 5 da kathy, ela explica exceções muito bem, e fazendo os simulados tipo whilabs ta bastante parecido com esse cap da kathy as questoes de exceções, mais me surgiu uma duvida olhando API, vi que NumberFormatException pertence a RunTimeException então ela é uma exceção nao verificada isso é valido?
Mas olhando novamente a API quais sao exceções verificadas? as que eu mesmo crio que extends de Exception? ArithmeticException eh verificada ou nao?
Me surgiu essa pergunta pois tem varias quetoes desse tipo do simulado com pegadinhas e errei algumas… Exception eh pai de RuntimeException estou certo?
Duvida exceções verificadas e nao verificadas
7 Respostas
Exato.
As exceções herdadas de RuntimeException são verificadas em tempo de execucão, e as herdadas apenas de Exception são verificadas em tempo de compilação.
Para saber se uma exceção é verificada ou não, consulte a documentação dela. Procure no cabeçalho o “extends Exception” ou o “extends RuntimeException”.
A exceção RuntimeException e suas subclasses, são exceções lança-das pela JVM.
A exceção Exception e suas subclasses, são exceções programáticas, aquelas criada por um aplicativo ou pelo um desenvolvedor de API.
Fonte: Kathy Sierra.
Exceções verificadas:
A terrível java.sql.SQLException (extends Exception), IOException (extends Exception), java.text.ParseException (extends Exception)
Exceções não verificadas:
NumberFormatException (extends IllegalArgumentException que por sua vez extend RuntimeException), NullPointerException,
Você pode criar a exceção que você quiser, tanto checked como unchecked. Se ela for subclasse de RuntimeException, o desenvolvedor que for usar sua API não vai ser forçado pelo compilador a tratar a exceção.
Há muita polêmica em torno das exceções checked.
Geralmente, as exceções de negócio são do tipo checked, pois se forem do tipo unchecked, o programador tende a esquecer que essa exceção pode ser lançada.
Respondendo esse tópico me veio uma dúvida:
Por quê ParseException - exceção lançada pelo famoso DateFormat.parse é uma exceção checked, e a NumberFormatException - lançada pelo Integer.parseInt (e os outros wrappers) é uma unchecked ?
Elas não estão no mesmo contexto ? (parse / conversão) ? Não deveriam ser ambas checked ou unchecked ?
Eu acredito que seja isso:
Faz mais sentindo check e unchecked nesse contexto. 
Boa sorte! :thumbup:
entao saquei galera, as exceções que são lançadas pela jvm nao sao verificadas ArithmeticException eu trato elas se eu quiser… e as declaradas por mim, ou que extends Exception sao exceções verificadas e devem ser tratadas senao nem compilar pois o compilar vai dizer que nao estou tratando ou declarado aquela exceção…
eh que eu achava que AthimeticExceptio era verificada mais olhei na api ela faz parte de RuntimeException, e olhei uma verificada ClassCastException que quando tento converter uma variavel de referencia que nao passa no teste É-UM.
Po galera valeu… agora tem muita pegadinha disso nos simulados… tem q decorar isso nao tem pra onde correr… errei umas 2 agora a pouco… de exceções por falta de atenção… flw!!
Exceções verificadas tem que ser tratadas ou lançadas! MAs uma hora alguém trata, nem que seja o main()
hum saquei 