'Internal error handling method. Here we expect a socket.error
coming in and will handle different socket errors differently.
:param int|object error_value: The inbound error'

def _handle_error(self, error_value):

    error_code = self._get_error_code(error_value)
    if (not error_code):
        LOGGER.critical('Tried    to    handle    an    error    where    no    error    existed')
        return
    if (error_code in self.ERRORS_TO_IGNORE):
        LOGGER.debug('Ignoring    %s', error_code)
        return
    elif (error_code in self.ERRORS_TO_ABORT):
        LOGGER.error('Fatal    Socket    Error:    %r', error_value)
    elif (self.params.ssl and isinstance(error_value, ssl.SSLError)):
        if (error_value.args[0] == ssl.SSL_ERROR_WANT_READ):
            self.event_state = self.READ
        elif (error_value.args[0] == ssl.SSL_ERROR_WANT_WRITE):
            self.event_state = self.WRITE
        else:
            LOGGER.error('SSL    Socket    error:    %r', error_value)
    else:
        LOGGER.error('Socket    Error:    %s', error_code)
    self._on_terminate(connection.InternalCloseReasons.SOCKET_ERROR, repr(error_value))
