J'espérais obtenir des opinions sur les meilleures pratiques et des commentaires sur la façon dont je lis les entrées de l'utilisateur à partir de la ligne de commande. Y a-t-il une manière recommandée de faire ceci, est-ce que j'utilise les blocs try/catch correctement?bonne façon de lire l'entrée de l'utilisateur à partir de la ligne de commande dans java
Mon exemple ici fonctionne bien, mais j'aimerais quand même savoir s'il y a une façon plus propre de le faire. Merci beaucoup. Par exemple, est-ce que les déclarations de retour dans chaque bloc catch sont nécessaires? Ou, devrais-je mettre ma logique (les conditions) dans le bloc try?
client public class {
public static void main(String[] args) {
begin();
}
private static void begin(){
Machine aMachine = new Machine();
String select=null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(aMachine.stillRunning()){
try {
select = br.readLine();
} catch (IOException ioe) {
System.out.println("IO error trying to read your selection");
return;
}catch(Exception ex){
System.out.println("Error trying to evaluate your input");
return;
}
if (Pattern.matches("[rqRQ1-6]", select)) {
aMachine.getCommand(select.toUpperCase()).execute(aMachine);
}
/*
* Ignore blank input lines and simply
* redisplay options
*/
else if(select.trim().isEmpty()){
aMachine.getStatus();
}
else {
System.out.println(aMachine.badCommand()+select);
aMachine.getStatus();
}
}
}
}
Le scanner ne nécessite donc pas l'utilisation de blocs try/catch et le traitement des exceptions? – denchr
Il ne l'exige pas, mais il va les jeter sur une mauvaise entrée. – monksy