Desenvolver nosso próprio método de detecção é um meio tradicional, o bloco try-catch é uma nova abordagem provida pelo Java. Em comparação, nós podemos dizer que o bloco try-catch organiza melhor o código do que o meio tradicional, porque separa o código comum do código de manipulação de erros.
Quando os programas são mais complicados, isso fica muito mais claro. Por exemplo, se nós temos uma chance para desenvolver um método para abrir um arquivo e ler um inteiro do arquivo.
Então nós podemos ver que o método precisa capturar dois tipos de exceções: FileNotFoundException e NumberFormatException. Utilizando o bloco try-catch, o código pode ser feito dessa maneira:
try{
aFile = openFile(filePath);
inputStr = readInteger(aFile);
inputStr = Integer.parseInt(inputStr);
}catch(FileNotFoundException fex){
fileNotFoundHandler();
}catch(NumberFormatException nex){
numberFormatHandler();
}
Sem utilizar o bloco try-catch, nosso código pode ficar uma bagunça. E se eu quiser utilizar o um próprio método de tratamento de erro, não pode? Na verdade, nós combinamos as duas abordagens e desenvolvemos um código bem organizado e com as separações de tarefas bem definidas.
Dentro do método playingGame da classe Player utilizamos o bloco try-catch além disso criamos a classe Number para verificar se o número é válido com o método isInRange e verificar se é um número com o método justNumbers. No método playingGame() na parte catch do bloco try-catch pode ver que utilizamos o nosso próprio código para tratar o erro. Isso é uma grande vantagem na utilização do try-catch. Porque não precisamos fazer um código para identificar o erro para depois tratar, a identificação do erro fica a cargo do try-catch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public int playingGame(){ boolean qualified = false; while(!qualified) { try{ guessedIntStr = JOptionPane.showInputDialog("Digite um número entre 1 e 100"); Number n = new Number(); guessedInt = Integer.parseInt(guessedIntStr); qualified = n.isInRange(guessedInt); }catch(NumberFormatException ex){ Message m = new Message(); Number n = new Number(); if(guessedIntStr == null){ m.showMsg("você pressionou o botão Cancelar ou fechou o programa.\n" +"O programa foi fechado.\n"); System.exit(0); }else if(guessedIntStr.equals("")){ m.showMsg("Você clicou no botão OK.\n" +"Nenhum dado foi inserido.\nDigite novamente.\n"); } n.justNumbers(guessedIntStr); } } Message m = new Message(); m.showMsg("Jogador: Meu palpite é " +guessedInt); return guessedInt; } |
Fonte: Learning Java with Games
Deixe um comentário