def next(self):
        __traceback_supplement__ = (
            Supplement, self.error_middleware, self.environ)
        if self.closed:
            raise StopIteration
        try:
            return self.app_iterator.next()
        except StopIteration:
            self.closed = True
            close_response = self._close()
            if close_response is not None:
                return close_response
            else:
                raise StopIteration
        except:
            self.closed = True
            close_response = self._close()
            exc_info = sys.exc_info()
            response = self.error_middleware.exception_handler(
                exc_info, self.environ)
            if close_response is not None:
                response += (
                    '<hr noshade>Error in .close():<br>%s'
                    % close_response)

            if not self.start_checker.response_started:
                self.start_checker('500 Internal Server Error',
                               [('content-type', 'text/html')],
                               exc_info)

            if six.PY3:
                response = response.encode('utf8')
            return response
dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/Paste-2.0.1/paste/exceptions/errormiddleware.py/CatchingIter.next/original