def _solve(self, sense=None):
        """Remove old constraints and then solve the current problem.

        Args:
            sense: Minimize or maximize the objective.
                (:class:`.lp.ObjectiveSense)

        Returns:
            The Result object for the solved LP problem
        """
        # Remove the constraints from the last run
        while len(self._remove_constr) > 0:
            self._remove_constr.pop().delete()

        try:
            return self._prob.solve(sense=sense)
        except lp.SolverError as e:
            raise_from(MOMAError(text_type(e)), e)
        finally:
            self._remove_constr = []