Tôi muốn có ý kiến thứ hai về cách xử lý Ngoại lệ trong "sự kiện" (nhập liệu, cập nhật màn hình, v.v.). Trong trường hợp này tôi có quyền kiểm soát người gửi sự kiện.Xử lý ngoại lệ Java trong "sự kiện"
Vì vậy, một mô-đun được thiết lập để xử lý một sự kiện (nó thực hiện một giao diện người nghe, và được đăng ký với một người gửi sự kiện):
public void DefaultSet (CardData oldDefault, CardData newDefault)
{
}
Người gửi sự kiện chỉ đơn giản là:
for (Enumeration e = listeners.elements(); e.hasMoreElements();)
{
RetrieverListener thisListener = (RetrieverListener) e.nextElement();
thisListener.DefaultSet(oldDefault, newDefault);
}
Vì vậy, nếu/khi có sự cố xảy ra trong người nhận:
Tôi có nên cố gắng giải quyết ngoại lệ không lại, và không bao giờ ném bất cứ điều gì trở lại cho người gửi? Đôi khi người nghe không có "ngữ cảnh" để xử lý lỗi chính xác, đúng không?
Có phải bạn cau mày ném một ngoại lệ trở lại mô-đun gửi sự kiện, để được xử lý theo cách được tài liệu không? ví dụ. "Ném một IOException sẽ dẫn đến một thiết lập lại ..". Điều này có vẻ không chuẩn từ javadocs mà tôi đã đọc.
Tôi có nên chỉ cần đăng nhập và bỏ qua ngoại lệ khi có sự cố & không có gì có thể thực hiện được?
Kiến trúc thú vị và câu trả lời hữu ích, cảm ơn! Tôi đoán vấn đề của tôi là người nghe không phải lúc nào cũng hướng đến hiển thị mọi thứ hoặc cung cấp phản hồi của người dùng, sử dụng các sự kiện thực sự làm lệch tương tự ngăn xếp từ trên xuống khiến cho Ngoại lệ mạnh mẽ (xử lý ngoại lệ tại điểm thích hợp trong ngăn xếp) , nơi mà một cái gì đó có thể được thực hiện). Dù sao thì tôi nghĩ người nghe sẽ phải đối phó với lỗi, bằng cách này hay cách khác. –
Bạn phải thiết kế hệ thống để làm cho người nghe có thể xử lý lỗi. Một ngoại lệ sẽ giải phóng ngăn xếp lại cho người nghe. Trình lắng nghe đã được gọi bởi một cái gì đó mà không thể biết làm thế nào để phản ứng với ngoại lệ - một nút được gọi trên chuỗi gửi sự kiện Swing, hoặc chuỗi gửi tin nhắn của một nhà cung cấp JMS, chẳng hạn. Bạn phải khởi tạo trình lắng nghe tại một vị trí và thời gian khi bạn có thể cung cấp cho nó tất cả ngữ cảnh cần thiết để phản ứng với ngoại lệ theo một cách hợp lý. – Nat