java_beginner, А что за странные имена переменных, через чёрточку?
Хотя, если Вы новичок, то видимо ещё не знаете о соглашении имён. В джаве принято использовать верблюжий стиль для имён классов, методов, переменных. Только константы пишут большими буквами, с подчёркиваниями.
Kostya12, Мммм... Ну смотри. Если будет сложно, перейдёшь на что-то другое. Сам сейчас читаю "философию ...", и мне она кажется немного сложной для меня, хотя я давно уже не новичок в джаве, прошёл курсы, прочитал хед фёрст, прочитал уйму статей, на квизфулл дошёл до 100% проходимости тестов для джуниоров и т.д....
Это плохая практика - использовать переменные конкретного типа, лучше использовать переменные абстрактных классов и интерфейсов. Так же, моё мнение, если в коде начинают использоваться коллекции коллекций, то стоит задумываться о качестве коде или вообще об архитектуре приложения. Например, можно перейти на объекты с нужными полями (если это возможно).
В данном примере мапу вполне можно заменить объектов с двумя стринговыми полями. KISS- сделай это максимально простым.
Также, если используются какие-то константы, то их можно вынести в перечисление (хотя читал, что в андроиде из-за большого потребления ресурсов они нежелательны, но, насколько помню, это было в какой-то не совсем уже свежей статье, может быть уже и не актуально...)
Kostya12, Кстати, по ООП есть и другие книги, чисто по ООП, но там вроде си два плюса используется для примеров и упражнений. Пока помню только классическую книгу Гради Буча, но она очень объёмная и сложная, я как-то не осилил. Думаю, должна быть книга и поменьше, и попроще, но тут я не подскажу: как-то не интересовался этой темой
Kostya12, Ну знания Си будут нелишними, но джава - это не Си, там свои законы) Мне ООП хороша помогла понять книга Head First Java, но она довольно простецкая. Есть и другие более подборные и более сложные книги. Так что без книги тут не обойдётся (не надо становиться тем говнокодером, которых итак хватает...)
Так я и спрашиваю, насколько это плохая или хорошая практика, нужно ли так делать или не нужно. Выше товарищи уже привели некоторые доводы в пользу написания своих эксепшенов. Я придерживаюсь их мнения.
Тут больше не про специфическую обработку эксепшенов, а про абстрагирование. По идеи, для малой связности слоёв программы один слой не должен знать о том, что творится внутри другого слоя - он просто должен передавать ему какие-то команды и получать результаты этих команд. Как известно, результатов вызова команды (метода) может быть эксепшн. Вот и возникает вопрос, что кидать? Например, есть архитектура MVC. В глубинах модели есть модуль, работающий с базой данных. При ошибках в этом модуле кидаются эксепшены (SQLException, в данном случае). Вот тут и возникает вопрос, что с ними делать. Не пробрасывать же до самого верха, самого абстрактного слоя (модели, фасада). Даже если делать так, то что потом делать с этими эксепшенами в других слоях (во вью и контроллере)!?
То-то и оно. Для каждого слоя или общей операции можно создать своё абстрактное исключение (абстрактное не в плане абстрактных классов в Джаве, а вообще). Или это тоже плохая практика!?
А что скажете по поводу выбрасывания специфических эксепшенов в слоях, которые вообще не связаны с объектами, которые могут выбрасывать эти эксепшены (пример я привёл выше)?
flppv, хорошо, а по факту Вы там кто!? Это понятно, что хаэрщики могут всяко-разно обзывать программистов, но всё же джун - это одно, а сениор - совсем другое. Тут и требования другие, и права, и ожидания с обязанностями.
Хотя, если Вы новичок, то видимо ещё не знаете о соглашении имён. В джаве принято использовать верблюжий стиль для имён классов, методов, переменных. Только константы пишут большими буквами, с подчёркиваниями.