добавил перехват исключений
убрал лишние вычисления