Захват ошибок «команда не найдена» из Ruby ' s обратные кавычки?

Есть ли способ зафиксировать ошибку «команда не найдена» в сценарии Ruby? Например, задано:

output = `foo`

Как мне отловить ситуацию, когда foo не установлен? Я ожидал, что смогу спасти исключение, но это, похоже, не работает в 1.8.7. Есть ли другой способ вызвать подпроцесс, который будет делать то, что я хочу? Или есть другой подход?

Обновление

Прошу прощения, я забыл упомянуть скрытое требование: я бы предпочел, чтобы интерпретатор не передавал пользователю командную строку (она может содержать конфиденциальные данные), поэтому предпочтительным является метод перехвата исключений. Еще раз извиняюсь за то, что упустил это в первый раз.

7
задан kfb 24 January 2011 в 15:38
поделиться