алгоритм и исключения