[RESOLVIDO]Dúvida sobre try catch

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:

[quote]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)[/quote]
Obrigado desde já.

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.

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

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 seguinte…
try{
//Codigo que pode causar Exceptions…
} catch(NuberFormatException e){
//E o que fazer para tratar este erro…
//Como é um programa com interface grafica fica legal assim…
JOptionPane.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.”);
}

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

Fraco… :stuck_out_tongue:

Fraco… :P[/quote]

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:

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.

Fraco… :P[/quote]

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: [/quote]

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.

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.

[quote=heliofrota][quote]
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.
[/quote]

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.

[/quote]

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