[RESOLVIDO]Dúvida sobre try catch

10 respostas
R

Boa noite, pessoal.
Estou com um problema sobre try catch e não sei como resolver. O problema é que como sou iniciante em java, não sei exatamente onde usá-lo.
Estou fazendo um programinha com interface gráfica e está funcionando normalmente. O problema surge quando eu aperto o botão “executar” do programa sem que ele tenha lido arquivo nenhum(é um programa que lê um arquivo de texto contendo números e faz cálculos com ele). Uma série de exceções aparecem no terminal do Netbeans. Vou por o que aparece abaixo:

<blockquote>run:

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at java.io.FileInputStream.(FileInputStream.java:134)

at java.io.FileReader.(FileReader.java:72)

at Historico.le_arquivo(Historico.java:26)

at Interface.jButton2ActionPerformed(Interface.java:318)

at Interface.access$100(Interface.java:10)

at Interface$2.actionPerformed(Interface.java:57)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6505)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:682)

at java.awt.EventQueue$3.run(EventQueue.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:696)

at java.awt.EventQueue$4.run(EventQueue.java:694)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)</blockquote>

Obrigado desde .

10 Respostas

heliofrota

Fala robgeek tranquilo ?

Quando acontecer um negócio desses você procura o nome da exception depois vai na classe que você criou
tipo at Historico.le_arquivo(Historico.java:26) nessa linha 26 ai você encontra o problema.

Ziru

E ai meu amigo beleza?
Eu programo pelo eclipse então sempre que uma exceção é lançada fica sublinhado e entre parentese qual classe lançou e em qual linha está acontecendo, e se eu clicar em cima vou direto para lá. Como aki

Flavio05
Insira a parte do código que pode causar Exception dentro do try, e o catch será o responsável por capturar e tratar essas Exceptions. Dentro do parametro do catch(//Nome do Exception) insira o nome da Exception, neste caso esse erro é causado porque você inseriu um valor int dentro de uma String, use o seguintetry{

//Codigo que pode causar Exceptions…

} catch(NuberFormatException e){

//E o que fazer para tratar este erro//Como é um programa com interface grafica fica legal assimJOptionPane.showMessageDialog(null, Um erro ocorreu.”);

}

Este exemplo captura apenas o NuberFormatException, mas você pode retirar este nome e colocar apenas a palavra Exception que servirá para tratar todas as exceções que possam ocorrer, fica assim…

try{

} catch(Exception e){

JOptionPane.showMessageDialog(null, Um erro ocorreu.);

}
R

Muito obrigado a todos que responderam. Me deram dicas de “ouro”. Testarei amanhã, pois agora estou indo dormir, tenho aula amanhã cedo.

Flavio05

Fraco… :stuck_out_tongue:

Ziru

Fraco… :P

Muito…kkkkkkkkkkk

Mas calma ele ta pegando o jeito jaja ta virando as madrugadas do avesso programando…
Até que peita num erro persistente olha pra tela do PC… “Ta me sacaneando né?”, ai vai dormir. :slight_smile:

R

Testei agora antes de dormir e funcionou, pessoal. Na verdade foi só por um catch a mais, o NullPointerException em uma parte do código que eu tinha posto ele não mostrou mais aquele monte de exceções do tópico.

Mais uma vez, obrigado.

R

Fraco… :P

Muito…kkkkkkkkkkk

Mas calma ele ta pegando o jeito jaja ta virando as madrugadas do avesso programando…
Até que peita num erro persistente olha pra tela do PC… “Ta me sacaneando né?”, ai vai dormir. :slight_smile:

Agora que vi o seu post. kkkkkk
Olha, na verdade fiquei pensando nisso e não ia conseguir dormir mesmo. Ontém tive um problema com um botão que eu não conseguia fazer funcionar e fiquei quase o dia todo quebrando cabeça por um negócio muito bobo. Mas só vi que era bobo depois que entendi o meu erro.
Calma caras, estou começando, logo logo farei como vocês, “virarei a noite” tentando resolver estas merdas que aparecem.

heliofrota

Manda bala , se esforça que um dia você pode ficar sabendo mais do que muitos profissionais, e quando chegar lá vai descobrir que não precisa dizer para ninguém.

Achei a atitude do colega de te chamar de fraco super ridícula, incrivel como em 2012 ainda existe algo assim.
Não vou tomar as “dores do ocorrido” mas sério, é ridiculo rotular principalmente quem está começando.

Ziru

heliofrota:

Olha, na verdade fiquei pensando nisso e não ia conseguir dormir mesmo. Ontém tive um problema com um botão que eu não conseguia fazer funcionar e fiquei quase o dia todo quebrando cabeça por um negócio muito bobo. Mas só vi que era bobo depois que entendi o meu erro.

Manda bala , se esforça que um dia você pode ficar sabendo mais do que muitos profissionais, e quando chegar lá vai descobrir que não precisa dizer para ninguém.

Achei a atitude do colega de te chamar de fraco super ridícula, incrivel como em 2012 ainda existe algo assim.
Não vou tomar as “dores do ocorrido” mas sério, é ridiculo rotular principalmente quem está começando.

Calma que estávamos só brincando com ele, nada de fraco de forma ofensiva… :smiley:

Criado 13 de dezembro de 2012
Ultima resposta 15 de dez. de 2012
Respostas 10
Participantes 4