Criando uma Exception

5 respostas
keller

beleza galera, to com um probleminha aqui…

try{
 System.err.println("fu***");
 throw new Exception("MinhaException");
} catch (Exception ex){
    ex.printStackTrace();
}

ok, a excessao é lançada mas o codigo nao para…
preciso fazer que o codigo pare, estou criando essa Exception
para impedir de criar mais de 7 Colunas de um Relatorio que
desenvolvi em Modo Texto, pois mais de 7 colunas ultrapassa o
tamanho da folha…

alguma boa ideia ? :smiley:

5 Respostas

T

Dá para usar a saída de emergência e chamar “System.exit()”. Não é impossível.
Mas…porque é que você quer chamar “System.exit()” no meio de seu programa, sem tratar direito o que está acontecendo? Acho que deveria ter um pouco mais de cuidado (fechar todos os arquivos que forem necessários, etc.)

keller

um System.exit(); finalizaria a aplicação e não é isso que eu gostaria de fazer…

eu gostaria de lançar uma Exception e impedir o programa de continuar tipo um… voltaProInicioSeuTansoMaisDeSeteColunasNaoPode(); :lol:

B

Olá.

Seguinte, declare que seu método “gerarRelatorio” lançe uma exception:

public ... gerarRelatorio() throws Exception

assim voce pode tirar o try/cacth, ou deixa-lo se for importante para ver se na geração acontece algo que voce pode prever mas quer controlar. se o relatorio ultrapassar o numero de colunas que voce quer lance a exception, mas se tiver o try/cacth relance, assim

try{ ... if(colunas>7){ throw new Exception("Mais de 7 colunas"); } }catch(Exception e){ throw e; }
voce ainda pode colocar um finally para finalizar algo, como citou o poste anterior…

valeu

keller
public
void  metodoQueVaiDarErro() throws Exception {
  try{
     throw new Exception("CollumnOutOfBoundsException");
  } catch (Exception ex){
       throw ex;
  }
}

public
void  esseMetodoNaoVaiSerExecutado(){
  System.out.println("testando as exceptions");
}

agora o metodo que vai dar erro tem que ficar dentro de um bloco de try e catch ai beleza!

try{
  X x = new X();
  x.metodoQueVaiDarErro();
  x.esseMetodoNaoVaiSerExecutado();
   } catch(Exception ex){
  ex.printStackTrace();
}

beleza, ai valeu Bruno! :smiley:

keller

duplicou a msg… :oops:

Criado 13 de dezembro de 2004
Ultima resposta 13 de dez. de 2004
Respostas 5
Participantes 3