добавлены проверки на существование файла и на запись в него

throw останавливает выполнение текущего метода