ghc-toolchain: don't throw when candidate executables are not found
When ghc-toolchain searches for a list of candidate executables, it currently throws for each failed candidate. This MR ensures we only throw if all candidates are not found.
Fixes #27369 (closed)