

def handle_exception(exc_info, error_stream, html=True, debug_mode=False, error_email=None, error_log=None, show_exceptions_in_wsgi_errors=False, error_email_from='errors@localhost', smtp_server='localhost', smtp_username=None, smtp_password=None, smtp_use_tls=False, error_subject_prefix='', error_message=None, simple_html_error=False):
    '\n    For exception handling outside of a web context\n\n    Use like::\n\n        import sys\n        from paste.exceptions.errormiddleware import handle_exception\n        try:\n            do stuff\n        except:\n            handle_exception(\n                sys.exc_info(), sys.stderr, html=False, ...other config...)\n\n    If you want to report, but not fully catch the exception, call\n    ``raise`` after ``handle_exception``, which (when given no argument)\n    will reraise the exception.\n    '
    reported = False
    exc_data = collector.collect_exception(*exc_info)
    extra_data = ''
    if error_email:
        rep = reporter.EmailReporter(to_addresses=error_email, from_address=error_email_from, smtp_server=smtp_server, smtp_username=smtp_username, smtp_password=smtp_password, smtp_use_tls=smtp_use_tls, subject_prefix=error_subject_prefix)
        rep_err = send_report(rep, exc_data, html=html)
        if rep_err:
            extra_data += rep_err
        else:
            reported = True
    if error_log:
        rep = reporter.LogReporter(filename=error_log)
        rep_err = send_report(rep, exc_data, html=error_message)
        if rep_err:
            extra_data += rep_err
        else:
            reported = True
    if show_exceptions_in_wsgi_errors:
        rep = reporter.FileReporter(file=error_stream)
        rep_err = send_report(rep, exc_data, html=html)
        if rep_err:
            extra_data += rep_err
        else:
            reported = True
    else:
        line = ('Error - %s: %s\n' % (exc_data.exception_type, exc_data.exception_value))
        if six.PY3:
            line = line.encode('utf8')
        error_stream.write(line)
    if html:
        if (debug_mode and simple_html_error):
            return_error = formatter.format_html(exc_data, include_hidden_frames=False, include_reusable=False, show_extra_data=False)
            reported = True
        elif (debug_mode and (not simple_html_error)):
            error_html = formatter.format_html(exc_data, include_hidden_frames=True, include_reusable=False)
            head_html = (formatter.error_css + formatter.hide_display_js)
            return_error = error_template(head_html, error_html, extra_data)
            extra_data = ''
            reported = True
        else:
            msg = (error_message or '\n            An error occurred.  See the error logs for more information.\n            (Turn debug on to display exception reports here)\n            ')
            return_error = error_template('', msg, '')
    else:
        return_error = None
    if ((not reported) and error_stream):
        err_report = formatter.format_text(exc_data, show_hidden_frames=True)
        err_report += (('\n' + ('-' * 60)) + '\n')
        error_stream.write(err_report)
    if extra_data:
        error_stream.write(extra_data)
    return return_error

dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/Paste-2.0.1/paste/exceptions/errormiddleware.py handle_exception/VarMisuse@183/476 `html`->`error_message`