Capturar excepetion e jogar em um jlabel

14 respostas
F

Ola! Estou construindo um programinha para me ajudar mas estou com um problema.
Tenho uma tela feita no netbenas e um metodo que pode ou não pó retornar uma exception. Quero que a exception seja lançada em um jlabel, mas não consigo colocar esta exception para o jlabel. Alguém pode dar um help.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
Constroi xs = new Constroi();
xs.setCaminho_html(thtml.getText());
xs.setCaminho_xml(txml.getText());
xs.setCaminho_xsl(txsl.getText());
try{
xs.transforma();
tresultado.setText("Arquivo convertido: " +xs.getCaminho_html() + " :P");
}catch(Exception ex)
{
tresultado.setText(ex.getMessage());
}
teste.setText(numero+++"");
}
t+

14 Respostas

Marck

Olá,

Tenta assim:

tresultado.setText(ex);
F

então Marck, nao funcionou.
coloquei assim:

tresultado.setText(ex.toString());

mas ta vindo um

java.lang.NullPointerException

so esta lancando a exception no console do netbeans!
t+ e obrigado pela ajuda

diego2005

O seu tresultado foi instanciado???

Marck

Então…

deu nullPointer pq nem sempre vai dar exception. A referência “ex” só vai existir ser gerar exceção…
Coloca seu JLabel dentro do bloco catch.

Abraço!

[edit]
Explicando melhor
caso esteja assim:

try{
 
    //todo o seu codigo aqui
}
  catch(Exception ex){
  //mais codigo
}

tresultado.setText(ex.toString());

Pode estar dando nullPointer pq não gerou exception no try e o Objeto ex não foi instanciado.

Att,

[/edit]

F

Ta vindo NullPointerException quando é gerada a maldita exception! No jlabel aparece NullPointerException e no console do netbeans aparece a exception que deveria aparacer no jlabel. Quando tudo ocorre bem vem a minha mensagem de que tudo ocorreu bem.
Tresultado é o meu jlabel e já foi instanciado. E ele esta dentro do try.
t+ :slight_smile:

Marck

HUMMMM…

boa!!!

Então põe:

ex.printStackTrace()

:lol:

valeu!!!

F

ex.printStackTrace() é void.

ramilani12

Não sou a favor de lançar uma Exception num Jlabel o preferível é lançar uma mensagem na tela que ocorreu algum erro

Neste caso lanço Exception em um arquivo de log gerenciado pelo LOG4J

F

meu metodo transforma esta assim.

public void transforma () throws TransformerConfigurationException, FileNotFoundException, TransformerException {...}

o que sera que esta de errado???

era para pegar a exception ex.getMessage().
entao, eu preciso da exception para saber o que esta acontecendo no meu arquivo xsl.

Marky.Vasconcelos

porque invés de pegar a mensagem da Exception você não coloca JLabel.setText(“Uma Exception ocorreu,tente novamente”)

F

preciso verificar integridade de um arquivo xsl.
desta forma se ocorrer algum tipo de erro como esse

file:///C:/file/xsl/processos.xsl; Linha n°317; Coluna n°9; org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.

eu sei que no meu arquivo xsl existe um erro na linha 317 e na coluna 9 e assim eu modifico ele.
é uma coisa interna que pode me ajudar e muito. mas preciso que esse erro seja colocado na jlabel ou qualquer coisa parecida.
será que é o tipo de erro que eu quero pegar ta ferrando alguma coisa no na interface gráfica e não imprime?

[Fatal Error] processo.xsl:317:9: The content of elements must consist of well-formed character data or markup.

blz. obrigado pela ajuda e t+ :slight_smile:

vtdb11

Crie um StringWriter, crie um PrintWriter em cima do StringWriter, coloque a exceção para printStackTrace(o PrintWriter) e acrescente ao JLabel o texto.
Fica algo como:

public void método() {
   try {
      //Faz as coisas
   } catch (Exception e) {
      StringWriter string = new StringWriter();
      PrintWriter printer = new PrintWriter(string);
      e.printStackTrace(printer);
      jLabel.setText(string.toString());
   }
}
F

Tambem não funcionou! Nao sei pq ta vindo um NullPointerException.
o erro ocorre, mas o try nao consegue capturar este erro. tem alguma coisa para capturar erro fatal?
mas valeu pela dica

F

cara.....
meu o negocio era mais chato do que eu pensava. como estou validando xsl e usando xalam. tive que fazer uma gambit que descolei num site na net.
que funciono blz.
segue o código aqui, as vezes pode ajudar alguém.
e valeu pela ajuda da rapaziada

import org.xml.sax.*;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.IOException;

public class Verifica implements ErrorHandler {
    
    
  public void warning(SAXParseException exception) {}
  
  public void error(SAXParseException exception) {}
  
  public void fatalError(SAXParseException exception) {}
  
   public String verifica_xsl(String document)
  {
    String rs = "";
      
    try {
      XMLReader parser = XMLReaderFactory.createXMLReader();
      ErrorHandler handler = new Verifica();
      parser.setErrorHandler(handler);
      parser.parse(document);
      //se ok
      
      
      rs += document + "documento ok.";
    }
    catch (SAXParseException e) {
      rs += document + " não esta bem formatado ";
      rs += "linha " + e.getLineNumber() + ", coluna " +  e.getColumnNumber();
      rs += " na entidade " + e.getSystemId();
    }
    catch (SAXException e) {
      rs += "nao pude checar a causa pq -> " + e.getMessage();
    }
    catch (IOException e) { 
      rs += "Ae! achei um IOException, não pude checar o documento " + document; 
    }
    return rs;
  }
  
   
   public Verifica() {}

 
   
}

Aqui o site que achei a informação
t+

Criado 29 de junho de 2007
Ultima resposta 3 de jul. de 2007
Respostas 14
Participantes 6