Tôi đã đọc bài đăng trên blog JRuby Performance: Exceptions are not flow control được chủ trương tránh sử dụng Ngoại lệ ngoại trừ các trường hợp ngoại lệ.Có cách nào khác để giải cứu LoadError cho Ruby không?
Tôi nhận thấy rằng tôi vô tội khi sử dụng cứu hộ để xử lý LoadErrors một cách thường xuyên.
Có cách nào khác thay thế cho require
cố gắng tải tệp nếu nó tồn tại, nhưng không ném ngoại lệ nếu không?
Bối cảnh: Nếu bạn đang tự hỏi "tại sao bạn đã có yêu cầu bạn không hoàn toàn yêu cầu?", Đây là câu chuyện của tôi:
- Trong khi tôi đang lập trình cho Ruby 1,8, tôi sử dụng
require "rdoc/usage"
để tôi có thể cung cấp thông tin sử dụng nếu tôi không nhập đúng số tham số trong ứng dụng dòng lệnh của mình. Điều này ném một ngoại lệ trên out-of-the-box 1.9. - Một phần của ứng dụng của tôi liên quan đến mã để thao tác win32ole khi nó chạy trên máy tính để bàn Windows của tôi. Điều này gây ra một LoadError nếu các tập tin có liên quan được chạy dưới máy chủ Linux có tác dụng tính toán nặng. Các tệp sử dụng win32ole cũng có mã khác được kiểm tra trong bộ thử nghiệm của tôi, vì vậy khi chạy bộ thử nghiệm của tôi trong Linux, tôi phải yêu cầu các tệp đó. Tôi nên chia nhỏ các tập tin như vậy, nhưng điều đó có vẻ hơi giống yak cạo râu.
Tôi có trường hợp sử dụng rất giống nhau (cụ thể là: tiện ích mở rộng tùy chọn trong công cụ). Tôi muốn được tò mò để biết nếu LoadError là cách duy nhất để làm điều đó. –
Lưu ý rằng bài viết nói về một trường hợp * vài trăm * ngoại lệ được gửi cho * mọi yêu cầu * Rails đơn lẻ, trong khi bạn đang nói về việc tăng * hai * ngoại lệ * một lần * trong toàn bộ thời gian tồn tại của chương trình. –