Посмотрите на продукты от jetbrains WebStorm например
Не знаю как насчет открытия совсем одного файла, но если jquery будет лежать рядом, то вроде должен автоматически его подхватить
Проверять корректность должен.
При этом он остается ответственным за одно действие — за установку именно email'a, а не произвольной строки.
Поэтому и генерировать исключение при неправильных данных тоже должен.
Метод же неспроста называется setEmail.
Вы же не удивляетесь, что при попытке присвоить строку в integer поле получаете ошибку (вероятно даже компиляции).
Здесь же происходит фактически тоже самое.
Если говорить про идейность, то еще лучше сделать тип Email и проверки делать в нем. Но в обычном, а не идеальном коде, это почти наверняка будет излишним. Поэтому проверка в setter'e — хороший компромисс.
Насколько я понимаю в таком варианте, файл закроется, только тогда, когда прийдет сборщик мусора.
И это может отличатся в зависимости от интерпретатора.
Лучше использовать так