InitPropertiesFromCustomList race condition

Is there a reason why check is used here for the race condition? Is it possible to handle it instead of throwing an exception?

void UBlueprintGeneratedClass::InitPropertiesFromCustomList(uint8* DataPtr, const uint8* DefaultDataPtr)
{
	FScopeLock SerializeAndPostLoadLock(&SerializeAndPostLoadCritical);
	check(bCustomPropertyListForPostConstructionInitialized); // Something went wrong, probably a race condition

	if (const FCustomPropertyListNode* CustomPropertyList = GetCustomPropertyListForPostConstruction())
	{
		InitPropertiesFromCustomList(CustomPropertyList, this, DataPtr, DefaultDataPtr);
	}
}