Я надеялся получить некоторые мнения относительно лучших практик и комментариев о том, как я читаю пользовательский ввод из командной строки. Есть ли рекомендуемый способ сделать это, я правильно использую блоки try/catch?Правильный способ чтения пользовательского ввода из командной строки в java
Мой пример здесь работает нормально, но все равно хотел бы услышать, есть ли «чистый» способ сделать это. Большое спасибо. Например, он возвращает утверждения в каждом блоке catch? Или, должен ли я поместить свою логику (условные выражения) в блок try?
общественного класса Client {
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();
}
}
}
}
Сканер не требует использования блоков try/catch и обработки исключений? – denchr
Он не требует этого, но он будет бросать их на плохой вход. – monksy