PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por Rafael Pais » Quarta Jan 05, 2005 22:41
Boas...
Gostaria de Tirar a seguinte duvida...
Eu gostaria que, ao escrever um número numa InputBox, e que se eu escrever uma String (Letras ao acaso), aparecer um erro tipo "Por Favor escreva so Números!"
Eu estive a pensar no "not isnumeric", que também existe no Visual Basic, mas nao me funciona e também ja estive a procurar no google, mas também nao encontro algo sobre isso...
Eu estou a pensar assim:
- Código: Seleccionar todos
if (num_algarismos not isnumeric)
{
JOptionPane.showMessageDialog(null,"Por Favor, escreva só números!");
}
Muito obrigado...

Desktop 
P4 3Ghz * 512Mb RAM (DDR 400) * 80Gb HDD Seagate * Geforce 4 MX440 * Pinnacle PCTV
Notebook 
Toshiba Satellite M30X-128
-
Rafael Pais
- Aprendiz

-
- Mensagens: 57
- Registado: Segunda Dez 06, 2004 0:47
- Localização: Vila Nova de Gaia
-
por alfatek » Quarta Jan 05, 2005 23:13
n tenho aqui um compilador à mão portanto n sei s n há uma forma mais "amiga" de se fazer isso mas uma forma é tentar converter a string p inteiro: Integer.parseInt() e fazer try catch da excepção que vai resultar caso a string n seja um numero... mas procura no Integer se n há uma função exactamente para o que queres ou msm na String.
-
alfatek
- Administrador

-
- Mensagens: 3257
- Registado: Sábado Abr 06, 2002 18:28
- Localização: Coimbra
-
por Rafael Pais » Quarta Jan 05, 2005 23:40
isso ja tinha feito o parseint
- Código: Seleccionar todos
int num_algarismos = Integer.parseInt( JOptionPane.showInputDialog("Introduza o Número de Algarismos" ) );
mas nao estou a conseguir é fazer o Try-Catch disso

Ate ja fiz coisas estupidas cmo isto:
- Código: Seleccionar todos
if (num_algarismos == String.valueOf(num_algarismos)
{
JOptionPane.showMessageDialog(null,"Erro!");
}
Editado pela última vez por
Rafael Pais em Quarta Jan 05, 2005 23:48, num total de 1 vez.
Desktop 
P4 3Ghz * 512Mb RAM (DDR 400) * 80Gb HDD Seagate * Geforce 4 MX440 * Pinnacle PCTV
Notebook 
Toshiba Satellite M30X-128
-
Rafael Pais
- Aprendiz

-
- Mensagens: 57
- Registado: Segunda Dez 06, 2004 0:47
- Localização: Vila Nova de Gaia
-
por ZePinga » Quarta Jan 05, 2005 23:45
Rafael Pais Escreveu:isso ja tinha feito o parseint
- Código: Seleccionar todos
int num_algarismos = Integer.parseInt( JOptionPane.showInputDialog("Introduza o Número de Algarismos" ) );
mas nao estou a conseguir é fazer o Try-Catch disso

Tenta isto:
try{
int num_algarismos = Integer.parseInt( JOptionPane.showInputDialog("Introduza o Número de Algarismos" ) );
} catch(IOException error){
trata aqui a exception
}
deve funcionar
-
ZePinga
- Aprendiz

-
- Mensagens: 98
- Registado: Domingo Set 12, 2004 22:29
por Rafael Pais » Quinta Jan 06, 2005 0:00
ZePinga Escreveu:Rafael Pais Escreveu:isso ja tinha feito o parseint
- Código: Seleccionar todos
int num_algarismos = Integer.parseInt( JOptionPane.showInputDialog("Introduza o Número de Algarismos" ) );
mas nao estou a conseguir é fazer o Try-Catch disso

Tenta isto:
try{
int num_algarismos = Integer.parseInt( JOptionPane.showInputDialog("Introduza o Número de Algarismos" ) );
} catch(IOException error){
trata aqui a exception
}
deve funcionar
Fiz cmo dizeste, mas dá-me este erro ao executar:
symbol : class IOException
location: class MasterMind
catch(IOException error)
Edit:
Fiz o import de java.io.* e agora da-me um erro ainda mais estupido:
exception java.io.IOException is never thrown in body of corresponding try statement
catch(IOException error)
^
Desktop 
P4 3Ghz * 512Mb RAM (DDR 400) * 80Gb HDD Seagate * Geforce 4 MX440 * Pinnacle PCTV
Notebook 
Toshiba Satellite M30X-128
-
Rafael Pais
- Aprendiz

-
- Mensagens: 57
- Registado: Segunda Dez 06, 2004 0:47
- Localização: Vila Nova de Gaia
-
por Rafael Pais » Quinta Jan 06, 2005 0:08
Pronto... Consegui!
Tirei o "IO" do "IOExeption"
Desktop 
P4 3Ghz * 512Mb RAM (DDR 400) * 80Gb HDD Seagate * Geforce 4 MX440 * Pinnacle PCTV
Notebook 
Toshiba Satellite M30X-128
-
Rafael Pais
- Aprendiz

-
- Mensagens: 57
- Registado: Segunda Dez 06, 2004 0:47
- Localização: Vila Nova de Gaia
-
por ZePinga » Sexta Jan 07, 2005 11:56
Rafael Pais Escreveu:Pronto... Consegui!
Tirei o "IO" do "IOExeption"
Nem mais pelo o erro que me mostraste agora atenção que quando fazes Exception só tás a criar um "problema" repara que tu assim apanhar qualquer excepção!!!! O que poderá originar erros mais tarde na execução do teu programa imagina que tu estás á xpera de um tipo de excepção e dentro do catch tratas essas excepção q tu pensas que pode ocorrer. Como fazes Exception apanhas qualquer excepção e poderás estar a tratar uma excepção que não é aquela que pretendes!! Portanto coitado com isso...
Só para teres uma ideia como fiz a minha cadeira de PO (programação com objectos) no meu projecto que era feito em java se houvesse um catch de Exception, ou seja apanhar qualquer coisa o projecto era anulado e ficava com 0 valores no mesmo
Xau
-
ZePinga
- Aprendiz

-
- Mensagens: 98
- Registado: Domingo Set 12, 2004 22:29
por alfatek » Segunda Jan 10, 2005 23:28
IOException estás a apanhar excepções relacionadas com IO. Tipo, abrir ficheiros que não existem e coisas assim.
A excepção que acontece é NumberFormatException se não estou em erro, portanto tens d fazer:
catch (NumberFormatException e)
-
alfatek
- Administrador

-
- Mensagens: 3257
- Registado: Sábado Abr 06, 2002 18:28
- Localização: Coimbra
-
por ZePinga » Terça Jan 11, 2005 0:21
alfatek Escreveu:IOException estás a apanhar excepções relacionadas com IO. Tipo, abrir ficheiros que não existem e coisas assim.
A excepção que acontece é NumberFormatException se não estou em erro, portanto tens d fazer:
catch (NumberFormatException e)
Yep nem mais

-
ZePinga
- Aprendiz

-
- Mensagens: 98
- Registado: Domingo Set 12, 2004 22:29
por JB » Quarta Jan 19, 2005 18:45
ZePinga Escreveu:Nem mais pelo o erro que me mostraste agora atenção que quando fazes Exception só tás a criar um "problema" repara que tu assim apanhar qualquer excepção!!!! O que poderá originar erros mais tarde na execução do teu programa imagina que tu estás á xpera de um tipo de excepção e dentro do catch tratas essas excepção q tu pensas que pode ocorrer. Como fazes Exception apanhas qualquer excepção e poderás estar a tratar uma excepção que não é aquela que pretendes!! Portanto coitado com isso...
tens razão mas neste caso não se coloca ese problema pois se ele só tem o parse dentro do try... a unica excepção que pode apanhar é mesmo aquela...
isso depende muito do código que está dentro do try.... e depende do grau de perfecionismo que se quer por nas coisas...
fiquem bien
-
JB
- Membro de Prata

-
- Mensagens: 150
- Registado: Terça Jul 06, 2004 0:04
- Localização: Coimbra - DEIUC
por alfatek » Quarta Jan 19, 2005 20:35
JB Escreveu:ZePinga Escreveu:Nem mais pelo o erro que me mostraste agora atenção que quando fazes Exception só tás a criar um "problema" repara que tu assim apanhar qualquer excepção!!!! O que poderá originar erros mais tarde na execução do teu programa imagina que tu estás á xpera de um tipo de excepção e dentro do catch tratas essas excepção q tu pensas que pode ocorrer. Como fazes Exception apanhas qualquer excepção e poderás estar a tratar uma excepção que não é aquela que pretendes!! Portanto coitado com isso...
tens razão mas neste caso não se coloca ese problema pois se ele só tem o parse dentro do try... a unica excepção que pode apanhar é mesmo aquela...
isso depende muito do código que está dentro do try.... e depende do grau de perfecionismo que se quer por nas coisas...
fiquem bien
Acho que a tua afirmação está errada... Num azar dos diabos pode ocorrer uma excepção do género alguém matar o java, a JVM explodir ou a thread ser trocada

Dá sempre jeito ser especifico quando isso é possivel e sabemos ser especificos. Neste caso, na prática, n haveria problema... Mas imagina que vais ler o código daqui a 25 anos, Exception n t indica nada de jeito, se meteres a excepção concreta, mais facilmente entendes o que querias fazer

-
alfatek
- Administrador

-
- Mensagens: 3257
- Registado: Sábado Abr 06, 2002 18:28
- Localização: Coimbra
-
por dbbm » Sexta Fev 11, 2005 23:16
já foi apresentada uma boa solução, mas também existem vários métodos na classe string que podem ajudar a determinar se há caracteres sem serem digitos. Basta ver uma referencia.
-
dbbm
- Aprendiz

-
- Mensagens: 47
- Registado: Quinta Mai 27, 2004 13:34
Voltar para Programação
Quem está ligado:
Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes