Ir ao conteúdo
  • Cadastre-se

Problema no tratamento da exceção


Urameshii

Posts recomendados

Tô tentando executar um atalho, o código do botão é esse abaixo:

private void botaoEntrarActionPerformed(java.awt.event.ActionEvent evt) {                                            
try {
Runtime.getRuntime().exec ("C:\\Documents and settings\\Aline\\Desktop\\femact-rr.lnk");
}
catch (java.lang.RuntimeException fnfex) {
System.out.println ("Arquivo não encontrado");
}
}

o código de erro é esse:

init:

deps-jar:

Compiling 1 source file to D:\Documents and Settings\CPD-Rossini\Meus documentos\NetBeansProjects\VPN\build\classes

D:\Documents and Settings\CPD-Rossini\Meus documentos\NetBeansProjects\VPN\src\vpn\VPNView.java:222: unreported exception java.io.IOException; must be caught or declared to be thrown

Runtime.getRuntime().exec ("C:\\Documents and settings\\Aline\\Desktop\\femact-rr.lnk");

1 error

FALHA NA CONSTRUÇÃO (tempo total: 4 segundos)

alguém tem ideia do que eu estou fazendo de errado?

obrigado desde já =D

Link para o comentário
Compartilhar em outros sites

O problema é que para usar o Runtime.getRuntime().exec() voce precisa de um try catch que trate o IOException.

Vai ficar assim:

 
private void botaoEntrarActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime.getRuntime().exec ("C:\\Documents and settings\\Aline\\Desktop\\femact-rr.lnk");
}
catch (IOException fnfex) {
System.out.println ("Arquivo não encontrado");
}
}

Link para o comentário
Compartilhar em outros sites

Obrigado pela colaboração =)

Bom pessoal, eu tentei fazer o que meu amigo js_junior07 disse. Infelizmente deu outro erro, eu resolvi deixar isso de lado por algumas horas e depois comecei a função do início (5 linhas de código fica fácil... §=) ) e não tratei especificamente a IOException e apenas a Exception no bloco catch.

o código ficou assim:


private void botaoAbrirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime.getRuntime().exec("C:\\Documents and Settings\\Aline\\Desktop\\femact-rr.lnk") ;
}
catch (Exception e){
JOptionPane.showMessageDialog (null, "Link não encontrado");
}
}

depois eu vi a dica do leoleonleo e vi que isso resolve mesmo o problema, mas eu sei que a única coisa que pode gerar execeção nesse caso é o arquivo não ser encontrado. Sendo assim queria aamarrar a exceção com IOException, mas quando tento fazer isso continua dando erro, como no código abaixo...


private void botaoAbrirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime.getRuntime().exec("C:\\Documents and Settings\\Aline\\Desktop\\femact-rr.lnk") ;
}
catch (IOException e){
JOptionPane.showMessageDialog (null, "Link não encontrado");
}
}

o erro é esse

init:

deps-jar:

Compiling 1 source file to C:\Documents and Settings\Convidado\Meus documentos\NetBeansProjects\TesteVPN\build\classes

C:\Documents and Settings\Convidado\Meus documentos\NetBeansProjects\TesteVPN\src\testevpn\TesteVPNView.java:255: cannot find symbol

symbol : class IOException

location: class testevpn.TesteVPNView

catch (IOException e){

1 error

CONSTRUÇÃO FALHOU (tempo total: 0 segundos)

o que fazer? o que está errado no código com IOException?

Link para o comentário
Compartilhar em outros sites

Eu imagino que exista alguma exceção não tratada, por isso, não dá certo além da IOException deve haver alguma outra... você pode fazer o seguinte


private void botaoAbrirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime.getRuntime().exec("C:\\Documents and Settings\\Aline\\Desktop\\femact-rr.lnk") ;
} catch (IOException e){
JOptionPane.showMessageDialog (null, "Link não encontrado");
} catch (Exception erro){
JOptionPane.showMessageDialog (null, "Erro desconhecido");
}
}

ou ainda assim ...


private void botaoAbrirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime.getRuntime().exec("C:\\Documents and Settings\\Aline\\Desktop\\femact-rr.lnk") ;
}catch (IOException e){
JOptionPane.showMessageDialog (null, "Link não encontrado");
}catch (java.lang.RuntimeException fnfex) {
JOptionPane.showMessageDialog (null, "Erro no programa chamado");
}catch (Exception erro){
JOptionPane.showMessageDialog (null, "Erro desconhecido");
}
}

Link para o comentário
Compartilhar em outros sites

Eu imagino que exista alguma exceção não tratada, por isso, não dá certo além da IOException deve haver alguma outra...

É mesmo... :D Quando a exceção foi tratada genéricamente o problema foi resolvido. Mas quando trata-se apenas IOException o erro volta a ocorrer...

vou testar o código sugerido, tratando IOExpetion no primeiro bloco catch e Exception no segundo só pra confirmar a teoria.

Agora, eu achei que a única exceção que poderia acontecer seria de o arquivo (atalho não ser encontrado)... O que vocês acham? :mellow:

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...