Tôi sử dụng rescue
cho mọi thứ, không chỉ cho các trường hợp ngoại lệ "cứu". Ý tôi là, tôi chỉ thích cách nó kiểm tra xác minh của tôi và kiểm tra lại dữ liệu.Tôi có lạm dụng "cứu hộ" để kiểm tra không?
Ví dụ: giả sử tôi có mô hình Item
những gì có thể có hoặc không có User
. Sau đó, khi tôi muốn để có được tên của chủ sở hữu của mặt hàng đó tôi viết:
item.user.name rescue ""
thay vì một cái gì đó giống như
item.user.nil? ? "" : item.user.name
Nó làm cho những suy nghĩ tương tự, vì nil.name
kích hoạt một ngoại lệ mà tôi cứu với ""
, nhưng tôi không chắc chắn đây là thực hành tốt. Nó làm cho những gì tôi muốn, và nó làm cho nó với ít mã, nhưng ... Tôi không biết, tất cả những gì rescue
từ đây và ở đó làm cho tôi cảm thấy không an toàn.
Thực tiễn không tốt hoặc lạm dụng hợp lệ từ khóa rescue
có hợp lệ không?
Avdi Grimm lập luận rằng 'try' là một mã nguồn http://devblog.avdi.org/2011/06/28/do-or-do-not-there-is-no-try/ và http://devblog.avdi.org/2011/07/05/demeter-its-not-just-a-good-idea-its-the-law/, do đó, nó không chỉ là cách bạn đang làm nó là xấu, nhưng đó những gì bạn đang cố gắng làm là xấu. –
@AndrewGrimm bất kỳ mối quan hệ nào? – ybakos
@ybakos Tôi không biết, nhưng chúng tôi không phải là [anh em] (http://en.wikipedia.org/wiki/Brothers_Grimm). –