Construtores recursivos, qual erro ocorre? (SCJP)

Estou lendo o livro da K&B, e no exemplo abaixo o qual adaptei do livro:

public class construtores{ public construtores(){this("a");} public construtores (String a){this();} }

Fiquei em dúvida se ocorre em erro em tempo de execução, o

% java construtores Exception in thread "main" java.lang.StackOverflowError
OU se ocorrerá erro de compilação:

construtores.java:3 recursive constructor invocation public construtores (String a){this();} ^ 1 error

No livro afirmam que é erro em tempo de execução porque a maioria dos compiladores não percebe este problema. Mas testando (no JDK 6) achei a segunda opção, ou seja nem sequer compila.

Como testei sei que na prática acontecerá isto (se estiver no Java 6), mas PARA PROVA, numa questão semelhante o que eu devemos seguir ?

Se a prova é do 5.0, vc deve seguir à risca o livro.
Não sabia que no 6.0 o compilador reconhece uma chamada recursiva nos construtores, muito bom isso :smiley: Acabei de testar.

Para a prova do 6.0 está ai uma observação!

Até mais!

concordo com o brother acima cara siga a risca o livro :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!:

Puxa, nem sabia que isso poderia cair em prova.
Na minha prova não caiu isso (acho que tal sutileza só cairia em uma prova de Java 1.4).
No caso do javac do JDK 5.0 também ele dá o tal erro:
recursive constructor invocation.
Mas não testei isso com o JDK 1.4.