Uso de exceção não checada

Pessoal,
vejam se fiz um bom uso da exceção. Acho que nesse caso o ideal seria não checada mesmo.

[code]/**

  • Essa superclasse controladora só pode ser utilizada para controlar visões que

  • implementam a interface PainelTabela.

  • @throws IllegalStateException se a visão não implementar a interface PainelTabela.
    */
    public abstract class ControladorEdicaoPainelTabela extends ControladorTelaEdicaoPadrao {

    public ControladorEdicaoPainelTabela(Window owner) throws IllegalStateException {
    super(owner);
    if (visao.getPainelTabela()==null)
    throw new IllegalStateException("Essa classe controladora só pode controlar visões que " +
    “implementam a interface PainelTabela.”);
    visao.getPainelTabela().setAdicionarListener(criarAdicionarListener());
    visao.getPainelTabela().setExcluirListener(criarExcluirListener());
    }[/code]

soh alguns detalhes: a parte do javadoc que fala da excecao deve estar no javadoc do metodo e nao da classe…
fora isso, achei estranho:

if (visao.getPainelTabela()==null)
 throw new IllegalStateException("Essa classe controladora só pode controlar visões que " +
 "implementam a interface PainelTabela.");

testar ou nao a implementacao de uma interface eh feita pelo operador instanceof quando vc sabe a classe em tempo de execucao (como eh o seu caso)…