У джавы карма, что ли, такая - что ей постоянно занимаются люди, не разбирающиеся в операциональной семантике и теории типов? Взяли бы в штат нормального специалиста. Вон Микрософт взял Люку Карделли - и всем счастье :)
А я считаю checked exceptions правильной вещью. Не будь их, никто бы вообще никакие исключительные ситуации не проверял. И очень печально, что мы, похоже, в этом направлении и идем :(
По факту, из моего (admittedly, не очень большого) опыта работы с жабой, я не припомню случая, чтобы это мне сильно помогло, и на раз припомню несколько случаев буквально за последний месяц, когда мне приходилось с этой фичей бороться. Вплоть до того, что библиотека обьявляет "throws Exception", а стайл-чекер говорит - в приличном обществе catch(Exception) не делают, а мне как-то надо между ними разруливать. В общем, отличная идея, только на практике нифига не работает.
С лямбдами это вообще эпический фейл, и совершенно на ровном месте - никто не мешал хотя бы сделать синтаксис для передачи эти эксепшенов наружу (ещё лучше по умолчанию - лямбды для того и нужны, чтобы избечь boilerplate code), и всё бы было нормально. Но нет, теперь мне нужно переписывать лямбды в обычные методы, потому что там где-то один метод может бросить эксепшен. О котором я знаю, мне на него плевать - для этого есть код сверху, который разберется - но выразить это средствами жабы невозможно никак. Или вот в тестах писать throws Exception каждый раз немного замаривает. Там, собственно, вся идея в том, чтобы эксепшены не обрабатывать - для этого тесты и нужны, чтобы вываливаться, когда что-то не так, но тупому роботу не обьяснить.
Не будь их, никто бы вообще никакие исключительные ситуации не проверял.
Ну, во-первых, эксепшены - не единственный способ. Во-вторых, для того, чтобы проверять эксепшены, не обязательно всем ходить строем и писать throws Exception возле каждого метода. Мне кажется, есть и другие пути. Тем более в джаве полно уже утилит по контролю качества кода, которые могли бы делать то же самое, но гораздо гибче и не уродуя всю структуру.
no subject
no subject
no subject
no subject
С лямбдами это вообще эпический фейл, и совершенно на ровном месте - никто не мешал хотя бы сделать синтаксис для передачи эти эксепшенов наружу (ещё лучше по умолчанию - лямбды для того и нужны, чтобы избечь boilerplate code), и всё бы было нормально. Но нет, теперь мне нужно переписывать лямбды в обычные методы, потому что там где-то один метод может бросить эксепшен. О котором я знаю, мне на него плевать - для этого есть код сверху, который разберется - но выразить это средствами жабы невозможно никак.
Или вот в тестах писать throws Exception каждый раз немного замаривает. Там, собственно, вся идея в том, чтобы эксепшены не обрабатывать - для этого тесты и нужны, чтобы вываливаться, когда что-то не так, но тупому роботу не обьяснить.
Не будь их, никто бы вообще никакие исключительные ситуации не проверял.
Ну, во-первых, эксепшены - не единственный способ. Во-вторых, для того, чтобы проверять эксепшены, не обязательно всем ходить строем и писать throws Exception возле каждого метода. Мне кажется, есть и другие пути. Тем более в джаве полно уже утилит по контролю качества кода, которые могли бы делать то же самое, но гораздо гибче и не уродуя всю структуру.