Nós vimos o bloco try-catch quando desenvolvemos o arquivo ReadFile.java.
ReadFile.java
import java.net.URL;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.io.BufferedReader;
public class ReadFile{
final String toXmas1 = "/txt/toXmas01.txt";
public void caminho(){
System.out.println(getClass().toString());
}
public void absoluteFilePath(){
System.out.println(getClass().getResource(toXmas1));
}
public URL absoluteFilePathURL(){
URL url = getClass().getResource(toXmas1);
return url;
}
public File retornaFile(){
URL url = getClass().getResource(toXmas1);
File file = new File(url.getPath());
return file;
}
public void readFile(){
try{
FileReader inputFile = new FileReader(retornaFile());
int aCh;
String mensagem = "";
while((aCh = inputFile.read()) != -1){
mensagem += (char) aCh;
}
System.out.println(mensagem);
}catch(Exception e){
System.out.println("ERRO readFile " + e.getMessage());
}
}
public String readMessage()throws Exception{
String line = null;
try{
Reader targetReader = new FileReader(retornaFile());
BufferedReader bufferedReader = new BufferedReader(targetReader);
line = bufferedReader.readLine();
bufferedReader.close();
}catch(Exception e){
System.out.println("Arquivo de texto da mensagem não foi encontrado");
}
return line;
}
}
A intensão do bloco try-catch checa uma exceção com um manipulador de exceções, com isso o programa irá continuar a execução mesmo que ocorra um erro.
No projeto Adivinha o Número, o jogador precisam inserir um número inteiro. O JOptionPane.ShowInputDialog() aceita entrada e retorna uma String, a qual será convertida para o tipo int.
Uma String válida para a conversão apenas deve ter números positivos ou negativos. O Java fornece um NumberFormatException para capturar qualquer erro que tenha uma String inválida, tais como, uma String vazia, nula, sem nenhum caractere e assim por diante.
Além disso, depois da declaração para capturar os dados de entrada, o método isQualifiedData aplica o bloco try-catch para verificar a entrada de dados.
public boolean isQualifiedData(String inputStr){
try{
guessedInt = Integer.parseInt(inputStr);
}catch(NumberFormatException ex){
System.out.println("\nO formato da entrada de dados " + inputStr + " está errado."
+" Tente novamente. \n");
return false;
}
boolean inRange = isInRange();
if(inRange){
return true;
}else{
return false;
}
}
O primeiro passo é chamar Integer.parseInt(inputStr) para converter o inputStr de uma String para um inteiro. O método parseInt() irá capturar qualquer elemento ilegal e lançar o NumberFormatException.
Se a exceção acontecer, nós simplesmente iremos mostrar a mensagem na tela e retornar false para que o JOptionPane abra novamente para o usuário digitar novamente.
Contudo, mesmo que o usuário coloque um dado não válido, o programa continua a execução. Se o InputStr não tiver nenhum problema e converter para um inteiro, então o método isInRange será chamado. Ainda não criamos esse método.
Fonte: Learning Java with Games





Deixe um comentário