'Lookup the best error class for the error and raise it
**Example**::
FacebookConnection.raise_error(10, \'OAuthException\')
:param error_type:
the error type from the facebook api call
:param message:
the error message from the facebook api call
:param error_code:
optionally the error code which facebook send'

@classmethod
def raise_error(cls, error_type, message, error_code=None):

    default_error_class = facebook_exceptions.OpenFacebookException
    error_code = (error_code or cls.get_code_from_message(message))
    logger.info('Trying    to    match    error    code    %s    to    error    class', error_code)
    error_class = cls.match_error_code(error_code)
    if (not error_class):
        if (not isinstance(error_type, int)):
            error_class = getattr(facebook_exceptions, error_type, None)
        if (error_class and (not issubclass(error_class, default_error_class))):
            error_class = None
    if (('Missing' in message) and ('parameter' in message)):
        error_class = facebook_exceptions.MissingParameter
    if ('Unsupported    delete    request' in message):
        error_class = facebook_exceptions.UnsupportedDeleteRequest
    if (not error_class):
        error_class = default_error_class
    logger.info('Matched    error    to    class    %s', error_class)
    error_message = message
    if error_code:
        error_message = (u'%s    (error    code    %s)' % (message, error_code))
    raise error_class(error_message)
