добавил комментарии и исключение