Before the change access to non-existent `.cp312` attribute caused
irrecoverable eval failure:
$ nix build --no-link -f. python312Packages.array-data
...
error: attribute 'cp312' missing
After the change we use `throw` fallback to turn the error into
recoverable:
$ nix build --no-link -f. python312Packages.array-data
...
error: array-record is missing hash for cp312
The difference is visible when one tries to skip the derivations that
throw errors. Irrecoverable eval errors do not allow skipping such
derivations.