Duvida conceitual sobre exceções

2 respostas
anjomal

Ai galera estava codando e dai então pintou uma duvida verifiquem o codigo abaixo:

public void getData(Object data) throws DataException {
	try {
		setFormValues(data);
	} catch (SecurityException e) {
			throw new DataException(e);
	} catch (IllegalArgumentException e) {
		throw new DataException(e);
	}
}

O codigo Acima poderia ser mudado para:

public void getData(Object data) throws DataException {
	try {
		setFormValues(data);
	} catch (Exception e) {
		throw new DataException(e);
	} 
}

E eu conseguiria sem prolemas passar o strack e os motivos da excessão para minha classe DataException ? ou teria de especificar excessão por excessão como estava fazendo ? Abaixo segue a classe DataException

public class DataException extends Exception {
	public DataException(){
		super();
	}

	public DataException(Exception e){
		super(e.getCause());
	}
	
	public DataException(String msg){
		super(msg);
	}
}

Obrigado galera,
T+ :smiley:

2 Respostas

Rafael_Steil

Voce pode fazer da maneira mais “generic” sem problemas. Geralmente voce vai ser informado do tipo da exception que foi gerado. Tratar os tipos mais especificos eh util quando voce precisar fazer valdiacao especifica, por exemplo.

Rafael

anjomal

Valew Rafael, mas olha so que problemão que eu arrumei, verificando a classe DataException que eu criei vc ve que eu Crio um Objeto Exception a partir da Causa do Erro:

public class DataException extends Exception { 
   public DataException(){ 
      super(); 
   } 

   public DataException(Exception e){ 
      super(e.getCause()); 
   } 
    
   public DataException(String msg){ 
      super(msg); 
   } 
}

aqui nesse construtor:

public DataException(Exception e){ 
      super(e.getCause()); 
   }

viu que criei meu Objeto Exception a partir da exception arremeçada getCause(), so que dai eu ganho um o seguinte problema; quando eu tento apanhar a mensagem da Excesão com e.getMessage ele me retorna null :shock: esse comportamento não e o esperado é ? :? ele naum tinha de herdar todas caracteristicas da excesção anterior ?

valew!

Criado 14 de julho de 2004
Ultima resposta 14 de jul. de 2004
Respostas 2
Participantes 2