text: #include "duckdb/parallel/task.hpp"
  #include "duckdb/execution/executor.hpp"
  
  namespace duckdb {
  
  ExecutorTask::ExecutorTask(Executor &executor_p) : executor(executor_p) {
  }
  
  ExecutorTask::ExecutorTask(ClientContext &context) : ExecutorTask(Executor::Get(context)) {
  }
  
  ExecutorTask::~ExecutorTask() {
  }
  
  TaskExecutionResult ExecutorTask::Execute(TaskExecutionMode mode) {
  	try {
  		return ExecuteTask(mode);
  	} catch (Exception &ex) {
  		executor.PushError(ex.type, ex.what());
  	} catch (std::exception &ex) {
  		executor.PushError(ExceptionType::UNKNOWN_TYPE, ex.what());
  	} catch (...) { // LCOV_EXCL_START
  		executor.PushError(ExceptionType::UNKNOWN_TYPE, "Unknown exception in Finalize!");
  	} // LCOV_EXCL_STOP
  	return TaskExecutionResult::TASK_ERROR;
  }
  
  } // namespace duckdb
  