Attempt to invoke assertions and catch any errors.
Readonly
We are going into a nested context, so calling exitOrThrow will not throw.
exitOrThrow
Exit the previously entered nested context or throw collected errors if we are in top-level context.
Execute the closure and catch any errors that may occur.
Attempt to invoke assertions and catch any errors.