while (stop) {String s = read.readLine();
if(s.equals("exit")) stop = false;
if(!s.equals("exit")) {try {int in = Integer.parseInt(s);
if(in>0 && in<128) {print((short)in);}
if(in<=0 || in>=128) {print((Integer)in);}
}
catch (Exception e) {try {Double doub = Double.parseDouble(s);
print((Double)doub); } catch (Exception a) {print((String)s);}} }
Dima
19 уровень
на сколько корректно использовать exception? слишком ужасно или норм для реальной задачи?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Dima
29 июля 2020, 09:30
Валидацию прошел. Думаю не стоит лишний раз exception использовать там где можно без него обойтись.
спасибо всем.
0
Василий БабинМракоборец в ДурмстрангExpert
29 июля 2020, 08:38
Вопрос, а валидацию прошёл код, ведь условие задачи чуть другое (хотя конечно цель будет достигнута)?
Моё мнение, что какого кода только не бывает.
Но, в данной конкретной задаче, как раз применение выкидывания исключения даёт решение данной задачи.
Я лично, тоже сделал чрез исключение, но только одно, остальное проверял через if.
0
Василий БабинМракоборец в ДурмстрангExpert
29 июля 2020, 08:33
Для улучшения читабельности:
0
ГоффMaster
28 июля 2020, 18:30
Взрослые ребята подскажут поточнее, пусть поправят. Насколько я понял - не комильфо искусственно вызывать выброс исключений для решения чисто алгоритмических задач. Исключение не для управления выполнением программы, а для отлова возникающих ошибок. При выбросе исключения жрётся много ресурсов, ну и просто это не красиво.
0
ГоффMaster
28 июля 2020, 18:33
В данном конкретном случае всё-таки лучше будет вручнуб проверить, что там пришло на входе, прежде чем парсить. Или можно использовать Scanner, у которого есть методы .hasNextInt, которым можно сначала посмотреть, что там на входе и потом, зная что, прочитать. Правда сам метод .hasNextInt реализован как раз через выброс исключений, но мы об этом как бы не знаем))
0