Estou com um problema, quando rodo meu programa pelo debug ele esta pegando uma exception geral e quando rodo com o executavel ele pega uma exception especifica o problema é que preciso gravar numa tabela de erro a mensagem especifica não a generica alguem já passou por isso
Eu tive este problema mas não foi eu quem resolvi, a pessoa que resolveu para mim alterou o escopo do tratamento de exceção, no meu caso ele acrescentou o throws ao método
dao.ChangeStatus(this.thName,item.getItem(),STATUS.PROCESSED);}catch(SicsFaultDetailsex)//Está exception vem quando debugo{this.STEP.Warning(newLegatusException(IADM_TABLES.DSG,this.Dsg.getObjectId(),ex.getExplanation()));Util.Log("Thread = "+this.thName,TYPE_MESSAGE.WARNING,"Apólice não protegida: "+this.Dsg.getObjectId()+"_"+ex.getExplanation());ALL_SECTIONS_OK=false;returnfalse;}catch(Exceptionex)//Esta exception vem no executavel{Stringmsg="The Main Limit of section "+item.getItem().getItemId()+"."+item.getGroupCode()+" is exceeding the program limit.";this.STEP.Warning(newLegatusException(IADM_TABLES.DSG,this.Dsg.getObjectId(),ex.getMessage));Util.Log("Thread = "+this.thName,TYPE_MESSAGE.ERROR,"Apólice não protegida: "+item.getFkDsgIte()+"_"+ex.getMessage());
obrigado
ALL_SECTIONS_OK=false;}}
S
staroski
Pôe um printStackTrace pra gente ter detalhes do que está acontecendo.
G
Gonzalo_Roman
coloco o printStackTrace nas duas exceptions?
G
Gonzalo_Roman
Fiz o Debug com o printStackTrace e passou pela exception (SicsFaultDetails ex) e aparece a informação
Esqueceu de postar o que o printStackTrace() mostrou.
G
Gonzalo_Roman
esta no print que mande
S
staroski
Não, no seu print está a tela de debug da sua IDE.
Um StackTrace é um texto contendo toda a pilha de chamada até o momento em que a exceção foi lançada.
D
diego12
Para usar o printStackTrace basta colocar dentro do catch:
ex.printStackTrace();
Ao executar, vai aparecer uma “lista” de erros se ocorrer naquele trecho de código.
No try/catch tem os filtros de exceções são SicsFaultDetails e Exception, se uma exceção for diferente de SicsFaultDetails, será tratada no filtro Exception.
Se não está sendo tratada na SicsFaultDetails mas está na Exception, então não é uma exceção SicsFaultDetails e pode ser uma outra exceção que vc desconheça.
Somente chamando o printStackTrace é possível identificar o que está acontecendo.
nesse caso deu certo pegou a mensagem que eu preciso, o problema é quando gero o .jar que ai nao tenho como debugar porque nao passa pelo SicsFaultDetails e vai direto para a Exception
G
Gonzalo_Roman
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: SICS0007 - SICS Message --> Essa mesagem vem quando executo o .jar
faultActor:
faultNode:
faultDetail:
{http://www.SicsNt.com/SystemTypes}FaultDetails:
date xsi:type=“xsd:date”>2018-03-20
time xsi:type=“xsd:time”>16:34:48 time>
xpath>/generateAutoProtectionInput /xpath>
explanation>The Main Limit of section 1.1.1036.01 is exceeding the program limit of BRL. --> essa mensagem vem no debug
explanation>
Sobre o Server.generalException, é outra exceção, portanto será tratado no Exception
G
Gonzalo_Roman
Galera obrigado pelas suas dicas, descobri que o problema não é quando debugo e o execuavel o problema é que no debug estou usando o tomcat como web service e o no cliente faz por websphere, agora não sei se será alguma configuração que tem que setar lá