Erro de compilação X Erro em tempo de execução

Eu queria saber a diferença entro os dois erros. Estive procurando no livros dos deitels e não encontrei nenhuma explicação entre os dois erros.

é exatamente oq os nomes dizem, erro de compilação é o erro q ocorre em tempo de compilação, por ex:

int 1abc; // vai dar erro, nao pode declarar variavel q começa com digitos numericos

agora esse:

Object o = null;
o.toString(); // erro de runtime, pq ele ta chamando método em um objeto cujo valor é null

o problema é quando a variável não é inicializada e outras paradas mais complexas. aí fica mais difícil.

se quiser, poste exemplos do q tu achou complicado q a gente te da a explicação :slight_smile:

É muito simples. Com o tempo você aprende.
Erro de compilação é um erro que o Compilador pega (Dhuuu), um erro de sintaxe ou algum erro lógico perceptível para o compilador (Ex: uma variável do tipo classe A recebe B mas B não herda de A).

Erro de runtime é algo que vai ocorrer apenas quando o programa estiver executando (cast, null pointer, etc)

mas o “null pointer” por exemplo em um array. o compilador não tem como saber se será gerado um NullPointerException em um array se aquele array é iniciado antes de ser acessado.

exato, por isso q NullPointerException é uma RuntimeException