Có cách thực hành tốt nhất để xác định các loại lỗi tùy chỉnh trong thư viện Ruby (gem) hoặc ứng dụng Ruby on Rails không? Đặc biệt:
- Họ thuộc về cấu trúc nào trong dự án? Một tệp riêng biệt, được gắn với định nghĩa mô-đun / lớp có liên quan, ở một nơi khác?
- Có bất kỳ công ước đó thành lập khi đến và khi không để tạo ra một loại lỗi mới?
Các thư viện khác nhau có cách làm việc khác nhau và tôi không nhận thấy bất kỳ mô hình thực tế nào. Một số thư viện luôn sử dụng các loại lỗi tùy chỉnh trong khi những thư viện khác hoàn toàn không sử dụng chúng; một số có tất cả các lỗi mở rộng StandardError trong khi một số khác có cấu trúc phân cấp lồng nhau; một số chỉ là định nghĩa lớp trống, một số khác có đủ loại mánh khóe thông minh.
Ồ, và chỉ vì tôi cảm thấy việc gọi những "loại lỗi" này là mơ hồ, ý tôi là thế này:
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
httparty
: github.com/jnunemaker/httparty/blob/iêu