AbortProtect[expr] evaluates expr, saving any aborts until the evaluation is complete.
Aborts that are generated during an AbortProtect take effect as soon as the execution of the AbortProtect is over.
CheckAbort can be used inside AbortProtect to catch and absorb any aborts that occur.
AbortProtect also protects against aborts generated by TimeConstrained and MemoryConstrained.
See The Mathematica Book: Section 2.5.13.