JavaRush /Java блог /Архив info.javarush /Правильное использование try catch
SoerKosolapiy
20 уровень

Правильное использование try catch

Статья из группы Архив info.javarush
Всем доброго времени суток! Хотел попросить совета. Получил на собеседование тестовое задание - написать консольное приложение для выполнения некоторых действий над БД. Одним из условий задания является написанием класса для работы с БД по правилам JavaBeans . Как я понял, данные правила утверждают, что экземпляр поля класса инициализируются через сеттеры, а конструктор остается дефолтным-пустым. Предположим, что у меня есть два поля класса - число int N и строка подключения к БД String S. Число N должно вводиться с консоли. Я решил вставить проверку на корректность введенного числа (вдруг пользователь введет что-то вроде "1.2" или "1/////2!?*("). И возник вопрос: Где нужно делать проверку с помощью try{}catch(Exception err){}? В главном классе? Или в классе БД (в самом сеттере)?
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
HansNoodles Уровень 31
6 мая 2016
Похоже ты не вполне разобрался с тем, как должны быть построены бины. Используй гугл более настойчиво :).
Если вкратце, то ни в сеттере, ни в геттере не должно быть никакой дополнительной логики, один просто устанавливает поле согласно переданному ему значению, а второй возвращает текущее значение заданного поля. Поля же, в свою очередь, должны соответствовать столбцам таблицы в БД, никакой «строки подключения к БД» там быть не должно.

Т.е. если твой бин описывает таблицу User у которого есть два свойства id и name, то бин должен выглядеть следующим образом.

public class UserBean {
        int id;
        String name;

        public UserBean() {
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
Docktor91 Уровень 40
6 мая 2016
лучше всего сделать, я думаю так, как учит javarush))
в больших задачах есть отдельный класс ConsoleHelper
для работы с консолью, там три метода(можно конечно и больше в пределах потребностей)
getString,getInt,writeMessage
вот собственно в getInt лучше делать проверку на правильность данных, и обрабатывать,
например повторно попросить ввести число.