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á.
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…
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.
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.
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. [/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…