Correctness is a property of the protocol. For Semi-Honest Adversaries comes out of the box (it is the goal of the protocol to be correct). If you are talking about adversarial models then maybe:
Is it your real question maybe how to be secure against Active Adversaries, (Parties are allowed to manipulate the protocol)?
In that case: The SPDZ family could be a good modern option for your question. They are dishonest majorities protocols, that offer cryptographic security with abort (so correctness):
This is the original SPDZ protocol. A more advance version of it (and the more efficient at the moment) is SPDZ Overdrive.
Such protocols have been implemented, more notably in the SCALE-MAMBA Library.
I assume you are considering other options as well, maybe more questions come to mind such as: Do you represent your functions as Arithmetic Vs. Boolean Circuits. Would you prefer something strong than the abort security? Are there optimized versions for Honest Majorities? Etc.
For these questions I would suggest you to give a look to this awesome list that is mantained by the community.