That's horrible advice.
The OP is complaining about errors being misreported, and you introduce a new such error.
exec failures should not appears as exit code from a successfully launched child. Even system and open3 get that right. (They use a close-on-exec pipe to communicate the errno of failures to the parent.)