Khi tôi đang lập trình trong Erlang, tôi có nên xác thực tất cả các giá trị trả về từ các cuộc gọi hàm để thành công thông qua kết hợp mẫu ngay cả khi tôi không định sử dụng giá trị trả về? Hầu hết các API Erlang tôi đã thấy cho đến nay không ném ngoại lệ về lỗi (nhưng trả về một cái gì đó như {error, Error}) vì vậy tôi phải xác thực giá trị trả về có? Bất kỳ ngoại lệ nào đối với điều này, nơi tôi không thực sự cần phải lo lắng về nó?Tôi có nên là mẫu phù hợp với mọi giá trị trả lại không?
5
A
Trả lời
11
Đó là kiểu lập trình tốt để khắc phục càng sớm càng tốt khi có sự cố. Bất cứ điều gì bạn thực hiện sau đó sẽ được thực hiện với hệ thống ở trạng thái không xác định.
Trừ khi bạn có ý định xử lý giá trị lỗi và làm điều gì đó trên đó, bạn viết mã của bạn cho trường hợp thành công. Như trong vòng lặp ít buồn sau:
life() ->
ok = work(),
ok = rest(),
life().
Các vấn đề liên quan
- 1. Giá trị "trả lại" đối sánh mẫu
- 2. Mẫu phù hợp với các giá trị giống hệt nhau
- 3. DDD có phù hợp với mọi loại ứng dụng không?
- 4. Bài đăng jQuery với FileStreamResult là giá trị trả lại
- 5. MapReduce có phù hợp với tôi không?
- 6. Tôi có thể phụ thuộc vào các giá trị của GetHashCode() để phù hợp không?
- 7. Trả lại số kết quả phù hợp từ C# dictionary
- 8. Trả lại không trả về giá trị biến
- 9. Có cần trả lại một giá trị trong Main() không?
- 10. mẫu SPARQL phù hợp với
- 11. Tôi có nên trả về giá trị TRUE/FALSE từ một hàm C không?
- 12. Có std :: cout có giá trị trả lại không?
- 13. Xem giá trị trả lại?
- 14. GetCustomAttributes không trả lại giá trị
- 15. Giá trị trả lại khi không có hàng trong PDO
- 16. Có chấp nhận trả lại unmodifiableList hoặc tôi có nên trả về mảng không?
- 17. lớp này không phải là khóa mã hóa phù hợp với giá trị cho khóa imageView
- 18. Giá trị trả về của WPF Gọi giá trị trả lại luôn là số
- 19. Phân tích chuỗi để phù hợp với giá trị enum
- 20. Macro trả lại giá trị
- 21. Cách tìm khóa băm có chứa giá trị phù hợp
- 22. Vòng lặp của tôi chỉ trả lại một giá trị
- 23. Caching trong C# có phải là cách tiếp cận phù hợp với tôi không?
- 24. Luôn trả lại giá trị dương
- 25. Clojure: chỉ trả lại giá trị
- 26. Tại sao lm trả lại giá trị khi không có sự sai khác trong giá trị được dự đoán?
- 27. Cờ trong VB6 không trả lại giá trị chính xác
- 28. jquery html() không trả lại giá trị thay đổi
- 29. preg_match: không có gì để lặp lại/không phù hợp
- 30. loại/giá trị không phù hợp trong mẫu C++ khai báo lớp
Christian nói tất cả ... + 1. – jldupont
Vâng, đây là những gì tôi đã tìm. Vấn đề là một trong các API của bên thứ ba mà tôi đang sử dụng không trả về ok một cách tốt đẹp khi thành công. Sau khi lưu một tài liệu, nó sẽ trả về tài liệu đã lưu. Tôi lấy lại SomeComplexDoc thay vì {ok, SomeComplexDoc}. –
@ Jeremy, Bạn chỉ có thể lưu tài liệu và sau đó khớp với tài liệu đó ở dòng tiếp theo. 'Doc = my_api_call()', 'ok = is_valid_doc (Tài liệu)'. – Zed