Giải pháp đơn giản hơn là sử dụng exceptions.
Khi xảy ra lỗi sẽ là thứ bạn hiển thị cho người dùng, hãy ném một loại ngoại lệ đặc biệt - có thể có tên là UserError
. Ngoại lệ phải chứa văn bản của thông báo lỗi khi bạn ném nó. Những loại lỗi rất tính năng mà cung cấp cho người dùng với thông tin hữu ích (ví dụ: họ đã cố gắng xóa một cái gì đó không tồn tại - có thể xảy ra khi họ có nhiều trình duyệt mở, vv)
ví dụ:
throw new UserError("That object no longer exists.");
Khi xảy ra lỗi mà bạn muốn ẩn khỏi người dùng, hãy ném một loại ngoại lệ khác, có lẽ tên là InternalError
. Bạn sẽ muốn đăng nhập điều này và cho phép chương trình tiếp tục, do đó, lỗi cụ thể bị ẩn khỏi người dùng. Nếu nó ngăn chặn một cái gì đó xảy ra, bạn có thể muốn ném một thông báo lỗi chung chung. Đây sẽ là lỗi và bạn muốn khắc phục chúng càng sớm càng tốt.
ví dụ .:
throw new InternalError("Failed to connect to remote service");
Tất cả các thông báo lỗi có thể được lưu trữ (hard-coded) trong nguồn nơi ngoại lệ được ném. Đây không nhất thiết phải là một thực hành thiết kế tồi - nếu bạn sử dụng một công cụ như gettext, bạn có thể dễ dàng dịch tất cả các thông báo này.
Tôi thích ý tưởng đó, báo trước duy nhất là nếu có nhiều lỗi lý tưởng tôi muốn ghi lại lỗi khi tiếp tục thực hiện. Do đó tại sao tôi đã sử dụng setError và getError. Tôi kiểm tra xem trả lại có đúng hay không, nghĩa là mọi hành động đã thành công và nếu tôi không nhận được lỗi. Một hành động của tôi là một phần thành công, và kết quả là tôi muốn trả về false và sử dụng getError để nhận được thông báo cho biết phần nào đã không thành công. Hy vọng có ý nghĩa. – Andre