def _handle_errors()

in src/run.py [0:0]


    def _handle_errors(self, policy: Policy):
        name, region = policy.name, PoliciesLoader.get_policy_region(policy)
        try:
            self._call_policy(policy)
        except ClientError as error:
            error_code = error.response.get('Error', {}).get('Code')
            error_reason = error.response.get('Error', {}).get('Message')

            if error_code in ACCESS_DENIED_ERROR_CODE.get(self.cloud):
                _LOG.warning(f'Policy \'{name}\' is skipped. '
                             f'Reason: \'{error_reason}\'')
                self._add_failed(
                    region=region, policy=name,
                    error_type=PolicyErrorType.ACCESS,
                    message=error_reason
                )
            elif error_code in INVALID_CREDENTIALS_ERROR_CODES.get(self.cloud):
                _LOG.warning(
                    f'Policy \'{name}\' is skipped due to invalid '
                    f'credentials. All the subsequent rules will be skipped')
                self._add_failed(
                    region=region, policy=name,
                    error_type=PolicyErrorType.CREDENTIALS,
                    message=error_reason
                )
                self._is_ongoing = False
                self._error_type = PolicyErrorType.CREDENTIALS
                self._message = error_reason
            else:
                _LOG.warning(f'Policy \'{name}\' has failed. '
                             f'Client error occurred. '
                             f'Code: \'{error_code}\'. '
                             f'Reason: {error_reason}')
                self._add_failed(
                    region=region, policy=name,
                    error_type=PolicyErrorType.CLIENT,
                    exception=error
                )
        except Exception as error:
            _LOG.exception(f'Policy {name} has failed with unexpected error')
            self._add_failed(
                region=region, policy=name,
                error_type=PolicyErrorType.INTERNAL,
                exception=error
            )