Pessoal, surgiu uma outra dúvida no livro da Kathy , que está na Pág. 83(na Implementação de interfaces):
“Pode declarar exceções de tempo de execução em qualquer implementação de método da interface, independente do que constar na declaração da interface”.
Qual seria a diferença entre “exceções de tempo de execução” e exceções normais? Porque no livro é citado que não podemos declarar exceções mais abrangentes nos métodos de implementação do que as declaradas no método da interface.
Pelo que eu entendo de exceção seria : throws , catch… , estou certo?
Se alguém souber de algum link que esclareça melhor pra mim sobre exceções e suas diferenças, poste pra mim por favor.
existe Exception e RuntimeException, as de runtime são aquelas q tu pode lançar e não precisar de um catch pra capturálas, por ex, NullPointerException é uma
B
bigwavesPJ
mas a NullpointerException dá alguma saída caso ocorra algum erro?
M
matheusPJ
não entendi tua pergunta, tu ta te referindo a classe Error?
S
SchuenemannPJ
"bigwaves":
mas a NullpointerException dá alguma saída caso ocorra algum erro?
Imprime NullPointerException, a pilha e a linha em que houve a exceção.
Outro exemplo:
String a = "ae";
System.out.println(ae.charAt(2)); // 0 a 1
StringIndexOutOfBoundException
B
bigwavesPJ
valeu, já aconteceu isso comigo várias vezes(ultrapassar o tamanho do array) , mas não associei isso com o nome NullPointerException, não parei pra pensar e passou despercebido, valeu pelas explicações.
matheus,a minha última dúvida era essa que o Schuenemann postou.
Obrigado galera.
W
WagnerPazPJ
E aew bigwaves!
Quando vc acessa um índice fora do tamanho de um array ele lança um ArrayIndexOutOfBoundsException.
Quando vc acessa uma referencia a um objeto não inicializado ele lança um NullPointerException.
Existem exceções:
não verificadas -> herdam direta ou indiretamente de RuntimeException, e não precisam ser capturadas ou declaradas.
verificadas -> herdam direta ou indiretamente de Exception, mas não de RuntimeException. Precisam ser capturadas para que o compilador pare de encher o saco hehe
Espero ter ajudado! abraço!
S
SchuenemannPJ
É, acho que você não entendeu direito cara.
A exceção aconteceu porque chamei o método add() sem ter um objeto ArrayList (repare que não foi instanciado um ArrayList, logo “a” tem o valor null).
Tentativa de chamar add() em null: NullPointerException.
O do índice da String é um exemplo de outra exceção.
B
bigwavesPJ
valeu galera, deu pra entender as explicações, obrigado.