Diferenças nas exception

Boa tarde,

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

private void geraRelatorio(boolean pdf, String filePath) throws JRException, URISyntaxException, Exception {.... (continua)

(e na chamada)
try {
geraRelatorio(pdf, filePath);
JOptionPane.showMessageDialog(this, “Relatório salvo com sucesso”, “Info”, JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, “Houve um problema na escrita do arquivo, por favor verifique se este”
+ “arquivo não está sendo utilizado por outra aplicação.”, “Erro”, JOptionPane.ERROR_MESSAGE);

    }

fiz o throws e não funcionou valeu

Que exception acontece pelo debug?
Que exception acontece quando roda por fora?
Cadê o seu código?

private boolean CreateSectionsNoChained(Integer idAmend) throws SicsFaultDetails, Exception





if(!errorSection)
{
try
{
this.GenerateAutoProtectionCommitNoChained();

                    dao.ChangeStatus(this.thName, item.getItem(), STATUS.PROCESSED);

                }
                catch(SicsFaultDetails ex) //Está exception vem quando debugo
                {
                    this.STEP.Warning(new LegatusException(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;
                    
                    return false;
                }
                catch(Exception ex) //Esta exception vem no executavel
                {
                    String msg = "The Main Limit of section " + item.getItem().getItemId() + "." + item.getGroupCode() + " is exceeding the program limit.";  
                                           
                    this.STEP.Warning(new LegatusException(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;
                  
                }
            }

Pôe um printStackTrace pra gente ter detalhes do que está acontecendo.

coloco o printStackTrace nas duas exceptions?

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.

esta no print que mande

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.

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.

SICS0007 - SICS Message
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:357)
at java.lang.Class.newInstance(Class.java:310)
at org.apache.axis.encoding.ser.BeanDeserializer.(BeanDeserializer.java:104)
at org.apache.axis.encoding.ser.BeanDeserializer.(BeanDeserializer.java:90)
at com.SicsNt.www.SystemTypes.SicsFaultDetails.getDeserializer(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.SicsWsBusinessEntryPoint.www.SicsWsBusinessEntryPoint_interface.SicsWsBusinessEntryPointBindingStub.generateAutoProtectionCommit(Unknown Source)
at com.csc.LegatusBR.xml.sics.SicsPC_Policy.GenerateAutoProtectionCommitNoChained(SicsPC_Policy.java:640)
at com.csc.LegatusBR.xml.sics.SicsPC_Policy.CreateSectionsNoChained(SicsPC_Policy.java:717)
at com.csc.LegatusBR.xml.sics.SicsPC_Policy.StartCededDsg(SicsPC_Policy.java:207)
at com.csc.LegatusBR.entities.ThProcessIn.run(ThProcessIn.java:253)

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

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>

Insira no catch:

PrintStream out = new PrintStream("LOG.TXT", "UTF-8");
out.print(ex.getMessage());
out.close();

Isso deve criar um arquivo com o StackTrace

Sobre o Server.generalException, é outra exceção, portanto será tratado no Exception

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á