The test launcher/executor has mixed return error code and exception code. Unify the error handling mechanisms.