Giả sử tôi có phương thức sẽ đăng một số nội dung trực tuyến và trả lại đúng/sai biểu thị thành công/thất bại.Mẫu chuẩn cho một phương pháp có thể thất bại vì các lý do khác nhau là gì?
Tuy nhiên, phương pháp của tôi có thể thất bại ở các bước khác nhau, ví dụ:
- bị chặn bởi thư rác chặn lỗi
- Mạng
- ngoài dự kiến ngoại lệ
tôi vẫn muốn phương pháp đơn giản trả lại một Boolean, tôi cũng không thích ý tưởng cho phép phương thức này chỉ ném ngoại lệ của nó và mọi người gọi phải bọc nó trong một try/catch (tôi ghét try/catch, nó luôn luôn xấu xí).
Có giải pháp chuẩn cho vấn đề này không?
Giải pháp tốt nhất mà tôi đưa ra là làm cho nó trở lại một enum thay vì với các kết quả có thể khác nhau, sau đó người gọi sẽ có một tuyên bố chuyển đổi. Có một giải pháp tốt hơn điều này?
CHỈNH SỬA: Tôi phải rõ ràng hơn; đây là một ứng dụng Android, người dùng sẽ đăng nhận xét trực tuyến, các lỗi khác nhau sẽ được dịch sang tin nhắn cho người dùng, ví dụ: "Spam, hãy đợi trước khi thử đăng lại"
có, enum sẽ là tốt cho mục đích này. – ZhongYu
'mỗi người gọi phải quấn nó trong một thử/catch' ngay cả khi bạn ném ngoại lệ, không cần phải quấn tất cả mọi thứ trong một thử/Bạn chỉ nên bắt ngoại lệ ở [các địa điểm thích hợp] (http://mikehadlow.blogspot.jp/2009/08/first-rule-of-exception-handling-do-not.html) –
Bạn C# kẻ đã phá vỡ tôi lên. Java không cung cấp cho bạn một tùy chọn như vậy, bạn phải nắm bắt mọi ngoại lệ được kiểm tra (hoặc một trong các lớp cha mẹ của ngoại lệ). Đôi khi tôi ghen tị với bạn. Thông thường, tôi khóc cho bạn. Blog mà bạn vừa liên kết đến là cuồng loạn. –