Is check/checkslow necessary?

People do all kinds of checking (check(), checkslow(), if(), etc) in their codes. I am a beginner and I do wonder whether this is necessary or is purely one’s habit? Some checks seem unnecessary to me since the expression they checked is already correct, while in other places where I think the check should happen they don’t have any checks. I tried to delete some checks in the projects and it doesn’t seem to have any effects on game play.

Thanks,

wcl1993

Checks are used for early bug reporting. When the condition of a check fails the engine will crash and you can see the call stack.
That means you use check for an expression that always has to be true, if not this is fatal bug and should be fixed immediately.
In a shipping build normal checks are stripped out by the compiler so that they don’t take up performance assuming that bugs that are catched through a check have been fixed.
You can read more about checks here:

https://docs.unrealengine.com/latest/INT/Programming/Assertions/

That’s all I want to know. Thank you HenningAx! Appreciate your help!