Catch errors when launching process.

This just catches basic errors (particularly for `ENOENT`).

It still shows the `execvp(): No such file or directory`, but it at least provides a better error message for users.