[RESOLVIDO]Tratamento de erros

galera, estou tentando aprender sobre tratamento de erros, e pesquisando algumas apostilas aqui na internet descobri o uso do bloco try , catch e finally
meu problema eh o seguinte
eu uso o try caso a pessoa digite um numero com ,(8,5)aparece o erro falano pa digitar ponto no lugar de virgula(8.5)
mas como eu faço para retornar o programa no ponto onde ocorreu o erro para que a pessoa possa novamente digitar a nota???

import javax.swing.JOptionPane;


public class Media 
{
	public static void main(String args[])
	{
		float p1 =0 , p2= 0;
		float media;
				
		int lista=0,ex=0,trab,t1=0;

		try
		{
		
			String prova1 = JOptionPane.showInputDialog("Digite a nota da P1");
			p1= Float.parseFloat(prova1);
			
			
			String prova2 = JOptionPane.showInputDialog("Digite a nota da P2");
			p2 = Float.parseFloat(prova2);
			
			
			String LISTAS = JOptionPane.showInputDialog("Quantas Listas de exercicios entregou?(De 0 a 5)");
			lista = Integer.parseInt(LISTAS);
		}
		catch(NumberFormatException e)
		{
			JOptionPane.showMessageDialog(null,"Digite . no lugar da ,");
		}
		finally
		{
		
		
			switch(lista)
			{
			case 0:
				ex = 0;
				break;
			case 1:
				ex = 2;
				break;
			case 2:
				ex = 4;
				break;
			case 3:
				ex = 6;
				break;
			case 4:
				ex = 8;
				break;
			case 5:
				ex = 10;
				break;
			default:
				JOptionPane.showMessageDialog(null, "Digite uma opção válida!(0 a 5 ");
				break;
			}
		
		
			String TRAB = JOptionPane.showInputDialog("Qual a nota do seu trabalho\n");
			trab = Integer.parseInt(TRAB);
			t1= trab;
			
			
			media= (p1 + p2 + t1 + ex)/4;
			
			
	
			String MEDIA = String.format("MEDIA FINAL E: %.2f",media);
			JOptionPane.showMessageDialog(null,MEDIA);
		
		}
	}
	
}

abraços

Ao invés de colocar um try…catch para o código inteiro, ponha apenas no trecho onde pode dar problema. E aí, use um while para garantir que o usuário não poderá continuar o programa, até que a nota certa seja digitada.

Por exemplo:

float p1 = -1; while (p1 < 0) { try { String prova1 = JOptionPane.showInputDialog("Digite a nota da P1"); p1= Float.parseFloat(prova1); } catch (NumberFormatException e) { System.out.println("Nova inválida, por favor, digite novamente."); } }

ahhhh
isso foi muito util
hehe
valews kara funcionou que é uma maravilha

Ah, só um comentário. Por favor, evite palavras em maiúsculas e expressões como “AJUDA”, “SOCORRO” e “URGENTE” no título dos seus tópicos.

Lembrando que você também pode retornar um valor para o sistema operacional, indicando se ouve uma falha ou não. Por exemplo:

try { //Todo conteúdo do bloco } catch (NumberFormatException e) { System.out.println("Nova inválida, por favor, digite novamente."); System.exit(1); //Retorna 1 para o sistema operacional, o que indica erro. }

Para informar que a aplicação encerrou com sucesso, você teria de retornar 0.

System.exit(0);