'Return a registered error handler for an exception in this order:
blueprint handler for a specific code, app handler for a specific code,
blueprint handler for an exception class, app handler for an exception
class, or ``None`` if a suitable handler is not found.'

def _find_error_handler(self, e):

    (exc_class, code) = self._get_exc_class_and_code(type(e))
    for (name, c) in ((request.blueprint, code), (None, code), (request.blueprint, None), (None, None)):
        handler_map = self.error_handler_spec.setdefault(name, {}).get(c)
        if (not handler_map):
            continue
        for cls in exc_class.__mro__:
            handler = handler_map.get(cls)
            if (handler is not None):
                return handler
