message: chore: return 404 instead of 500 for datasource not found
diff: @@ -41,6 +41,7 @@ from superset.charts.post_processing import apply_post_process
  from superset.charts.schemas import ChartDataQueryContextSchema
  from superset.common.chart_data import ChartDataResultFormat, ChartDataResultType
  from superset.connectors.base.models import BaseDatasource
  +from superset.dao.exceptions import DatasourceNotFound
  from superset.exceptions import QueryObjectValidationError
  from superset.extensions import event_logger
  from superset.utils.async_query_manager import AsyncQueryTokenException
  @@ -141,6 +142,8 @@ class ChartDataRestApi(ChartRestApi):
  query_context = self._create_query_context_from_form(json_body)
  command = ChartDataCommand(query_context)
  command.validate()
  + except DatasourceNotFound as error:
  + return self.response_404()
  except QueryObjectValidationError as error:
  return self.response_400(message=error.message)
  except ValidationError as error:
  @@ -229,6 +232,8 @@ class ChartDataRestApi(ChartRestApi):
  query_context = self._create_query_context_from_form(json_body)
  command = ChartDataCommand(query_context)
  command.validate()
  + except DatasourceNotFound as error:
  + return self.response_404()
  except QueryObjectValidationError as error:
  return self.response_400(message=error.message)
  except ValidationError as error:
  