Duvida conceitual sobre exceções

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:

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

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!