обработка ошибок вынесена наружу для единообразия