Por favor, me ajudem

Oiiiiii pessoal do Portal Java

estou mto feliz com vcs

são mto legais e sempre que tenho

uma duvida, sempre há alguem

pra reponder prontamente…

as vezes até é muito rapido

nem esperava tanta rapidez xD

Mas entaum estou começando a entender

melhor a programação java, ainda naum sei

quase nada, mas esses dias fiz uma programinha

sózinho, bem simples mas nas aprimorações já

está em mais de 200 linhas de código.

E fkei com uma duvida mto interresante

sempre q mando o usuario entra com algo

é pela janela JOptionPane e todo o conteudo entra como String

dai para botar opçoes de 1 ou 2 eu converto essa string em Inteiro

com o Integer.parseInt mas e se a pessoa colaco uma String da uma erro

pq ele naum cosegue converter essa letra, como trato desse erro ?

Ola Renato,

Tipo erros dessa natureza nao sao dectados como uma possivel fonte de erros, tipo como se estivesse esperando um numero e o usuario digitasse uma palavra daria um erro do tipo NumberFormatException.
Voce pode fazer da seguinte maneira.

try{
 Long numero = Long.parseLong(JOptionPane.showInputDialog("Digite algo"));
} catch(NumberFormatException e){
  System.out.println("Digite um numero valido");
} catch(Exception e ){//exception generica.
  System.out.println("Erro desconhecido...tente novamente");
}

oOo meu naum entendi direito esse código

se naum for pedir mto pode da uma esplicada

melhor nele… Por favor…

try{
 Long numero = Long.parseLong(JOptionPane.showInputDialog("Digite algo")); // Tenta converter o texto digitado para Long
} catch(NumberFormatException e){ // cai na exceção, pois não é possível transformar um texto em número
  System.out.println("Digite um numero valido");
} catch(Exception e ){//exception generica.
  System.out.println("Erro desconhecido...tente novamente");
}

Entao renato,
no codigo que eu postei que voce tinha ficado com duvidas, é o seguinte. O java tem algumas convençoes quanto as suas classes, algumas podem gerar erros claros e outras nao, como o seu codigo por exemplo, se voce nao digitar um texto nao vai ter erro caso contrario um erro vai ser disparado.
Esse modo que eu fiz dentro de um laço de execução protegido “TRY/CATCH”, permite que voce possa capturar e assumir alguma atitude em caso de erro de acordo com o tipo de erro e permitindo tambem que voce possa definir suas proprias excecoes.

try{
 Long numero = Long.parseLong(JOptionPane.showInputDialog("Digite algo")); // Tenta converter o texto digitado para Long
} catch(NumberFormatException e){ // cai na exceção, pois não é possível transformar um texto em número
  throw new NumeroDigitadoDesconhecido("Digite algo correto");
} catch(Exception e ){//exception generica.
  System.out.println("Erro desconhecido...tente novamente");
} 

fala ai kara , blz
acho q naum entendi direito sua pergunta ,

vc usa o seguinte codigo .

int num ;
Strig abc ;

num=Integer.parseint.JOP.SID(“digite um numero”);
que acontecesse nesse passo é que ele pega um numero em string e passa a validar como int. “acho q vc já sabe disso”

se você fizer assim :
num=JOP.SID("digite um numero ")
ele não vai validar essa informação devido a varial ser de tipo diferente

o camiho é como o ex acima pq
ele pega esse dado q foi inserido e cheka se é comparivel . de
forma explicita . …

qq coisa de detalhe do codigo q você esta com duvida pra analizar melhor ok ?!!! 8O :idea:

Na verdade é bem simple

eu uso por exemplo

String input_escolha;
int escolha;

input_escolha = JOptionPane.showInputDialog (Entre com 1 para sim e 0 para não: );

escolha = Integer.parseInt ( input_escolha )

entendeu…

só q se a pessoa digitar uma letra da um erro e sai do aplicativo…

q q eu faço ???

tentou fazer o que eles disseram?! com a resposta deles vc já tem condições de fazer o que você quer, seu problema não esta sendo de sintaxe, esta sendo de lógica, falta de atenção e falta de vontade… desculpa ser extremamente antipatico mas essa foi a minha impressão.

	public static void main(String args[]) {
		String in = null;
		do {
			in = JOptionPane
					.showInputDialog("0 ou 1: ");
			try {
				Integer.parseInt(in);
			} catch (NumberFormatException e) {
				JOptionPane.showMessageDialog(null, "Número invalido");
				in = null;
			}
		} while (in == null);
	}

Não tudu bem, obrigado pela sinceridade

Mas pesso um pokinho mais de paciencia

pois como disse este é meu PRIMEIRO aplicativo

estou fazendo um curso POR INTERNET, e nem sabia ainda

desse método… Não cheguei nem no “do{”

mas mesmo assim obrigado pela colaboração

grato…

Tá, explicando
Eu vou ler o que o usuário digitar enquanto ele não digitar algo valido, isso é o do { … } while(expressao) : Faça algo enquanto tal expressão não for verdade.
Para verificar se o cara digitou um número, eu tento converter o digitado para número, se der uma exceção do tipo NumberFormatException, significa que o sistema não conseguiu converter

Outra forma, usando expressão regular:

		String in = null;
		do {
			in = JOptionPane
					.showInputDialog("Entre com 1 para sim e 0 para não: ");
		} while (in != null && !in.matches("\d*"));

É só escolher

BLZ FERA !,

COMO NÓS SOMOS INICIANTES KARA ,
TIPO ATENTAR MAIS A LOGICA DEIXA O PRG DE TESTE FUNCIONANDO É MUITO BOM , CLARO Q TRATAR INFORMAÇOES É MUITO IMPORTANTE .POR QUE AINDA NÃO CONHECEMOS TODA A LINGUAGEM E QUE ELA PODE OFERECER NÃO É ?

COM OS POST’S ACIMA JÁ PROVAVEL Q VOCE TENHA CONSEGUDO TRATAR ESSA INFORMAÇÃO BÁSICA .

PROCURE AVANÇAR MAIS NA LINGUAGEM Q VOCE PERDERÁ MENOS TEMPO E TRATARA A INFOMAÇÃO NATURALMENTE .

FALOW .