code: def handle_api_exception(f):
      
      def wraps(self, *args, **kwargs):
          try:
              return f(self, *args, **kwargs)
          except SupersetSecurityException as e:
              logging.exception(e)
              return json_error_response(utils.error_msg_from_exception(e),
                                         status=e.status,
                                         stacktrace=traceback.format_exc(),
                                         link=e.link)
          except SupersetException as e:
              logging.exception(e)
              return json_error_response(utils.error_msg_from_exception(e),
                                         stacktrace=traceback.format_exc(),
                                         status=e.status)
          except Exception as e:
              logging.exception(e)
              return json_error_response(utils.error_msg_from_exception(e),
                                         stacktrace=traceback.format_exc())
      return functools.update_wrapper(wraps, f)
docs: A decorator to catch superset exceptions. Use it after the @api decorator above
      so superset exception handler is triggered before the handler for generic exceptions.