Có cách nào để nắm bắt lỗi "lệnh không tìm thấy" trong tập lệnh Ruby không? Ví dụ: được cung cấp:Chụp lỗi "lệnh không tìm thấy" từ dấu gạch chéo ngược của Ruby?
output = `foo`
Làm cách nào để bẫy tình huống foo
chưa được cài đặt? Tôi hy vọng rằng tôi có thể rescue
một ngoại lệ, nhưng điều này dường như không hoạt động trên 1.8.7. Có cách nào khác để gọi quy trình con sẽ thực hiện những gì tôi muốn không? Hoặc có cách tiếp cận khác không?
Cập nhật
lời xin lỗi của tôi, tôi quên đề cập đến một yêu cầu ẩn: Tôi muốn rằng người phiên dịch không bị rò rỉ dòng lệnh cho người sử dụng (nó có thể chứa dữ liệu nhạy cảm), do vậy tại sao các ngoại lệ phương pháp đánh bắt được ưa thích. Xin lỗi lần nữa vì đã rời khỏi đây lần đầu tiên.
Một chiến thuật đó là hữu ích khi bạn cần một tính năng đặc biệt, là để chạy kiểm tra trước, hãy tìm kiếm tính năng hoặc ứng dụng hoặc mã trước tiên trước khi cố gắng chạy nó. Nói 'which' foo'' hoặc sử dụng một vài bài kiểm tra File để tìm kiếm sự tồn tại của tập tin cộng với khả năng thực thi của nó, sẽ cho bạn biết nó có an toàn để tiếp tục mà không thực sự cố gắng thực hiện lệnh và không. Nó làm cho trải nghiệm người dùng tốt hơn bởi vì bạn có thể kiểm soát cách bạn phản ứng với chức năng bị thiếu và chuyển sang tuyến đường thay thế hoặc thông báo cho người dùng mà bạn không thể tiến hành vì thiếu thứ gì đó. –
Đồng ý, nhưng 'cái' foo'' không phải là nền tảng chéo, và tôi không thể nghĩ ra một cách đa nền tảng để làm điều đó khác hơn là thử nó và bắt lỗi ... – kfb