Oi pessoal,
Estou desenvolvendo um sistema e estou com problemas quanto ao tratamento de exce��es. Preciso fazer com que as exce��es lan�adas em qualquer camada do sistema chegue � camada de apresenta��o. O que eu fiz foi criar uma exce��o chamada SistemaException que herda de RuntimeException. Quando ocorre algum erro eu trato com try/catch e lan�o uma SistemaException, o meu problema � que, l� na camada de apresenta��o, quando mando escrever e.getMessage() o sistema escreve null. Acho que o que est� acontecendo � que quando declaro as emiss�es nos m�todos intermedi�rios com throws, o sistema est� criando uma nova exce��o e n�o passando o mesmo objeto que foi criado por mim quando a exce��o foi lan�ada. S� consigo pegar as mensagens das exce��es l� na camada de apresenta��o quando eu trato a exce��o com try/catch e relan�o usando throw e; repassando assim o mesmo objeto SistemaException, e, com isso, levando a mensagem dele. Mas sei que isso n�o existe, porque o sistema ficaria cheio de try/catch sem necessidade. Fiz um teste mais simples de quatro classes que chamam uma a outra para exibir qualquer coisa e a mensagem chega ao final (o c�digo est� abaixo). Ser� que as mensgens das minhas exce��es n�o chegam porque o relacionamento entre os objetos � feito utilizando interfaces?
 
============================================
package teste;
 
public class ExcecaoGeral extends RuntimeException {
 public ExcecaoGeral(String mensagem){
  super(mensagem);
  //System.out.println("criada a exce��o");
 }
}
============================================
package teste;
 
public class Classe1 {
 public static void main(String[] args) {
  Classe2 c2 = new Classe2();
  String data;
  try{
   data = "">   System.out.println(data);
  } catch(ExcecaoGeral e){
   System.out.println(e.getMessage());
  }
 }
}
============================================
package teste;
 
public class Classe2 {
 public String metodo2(String formato) {
  Classe3 c3 = new Classe3();
  String data = "">
 
  return data;
 }
}
============================================
package teste;
 
public class Classe3 {
 public String metodo3(String formato) {
  Classe4 c4 = Classe4.getInstance();
  
  return c4.metodo4(formato);
 }
}
============================================
package teste;
 
import java.util.Date;
import java.text.SimpleDateFormat;
 
public class Classe4 {
 private static Classe4 instance;
 
 private Classe4(){
 }
 
 public static Classe4 getInstance(){
  if(instance == null){
   instance = new Classe4();
  }
  
  return instance;
 }
 
 public String metodo4(String formato) {
  
  if(!formato.equals("dd/MM/yyyy")){
   throw new ExcecaoGeral("Formato errado: " + formato);
  }
  SimpleDateFormat formater = new SimpleDateFormat(formato);
  Date data = "" Date();
  String dataStr = formater.format(data);
  
  return dataStr;
 }
}
============================================
 
[]�s
 

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
Rodrigo Oliveira
[ Programador ]

Icorp - Ag�ncia de Internet
Criando uma internet de resultados
:: www.icorp.com.br ::


* [EMAIL PROTECTED]
( 81 3427.1359

Responder a