Trong nửa năm của Winforms-MVP, tôi đã thiết kế chiến lược xử lý ngoại lệ sau đây. Tôi có một lớp Presenter trừu tượng cơ bản với một số phương thức Execute lấy một đại biểu làm tham số đầu vào (chữ ký thay đổi). Tương tác giữa View và Presenter được thực hiện thông qua các sự kiện (input) được định nghĩa trong IView và bằng cách thiết lập các thuộc tính public (output) hoặc các phương thức gọi được định nghĩa trong IView và được thực hiện bởi View. Mỗi trình xử lý sự kiện trong trình trình bày gọi một trong các phương thức Execute cung cấp phương thức này với việc thực hiện cụ thể.Thông báo cho người dùng cuối về ngoại lệ trong Winforms-MVP và WPF-MVVM
Trong phương thức thực thi, tôi có một số khối bắt giữ cho các ngoại lệ rất có thể xảy ra (chủ yếu là do một số vấn đề trong các thành phần bên ngoài được sử dụng rộng rãi). Mỗi trường hợp ngoại lệ này dừng việc thực hiện thao tác hiện tại, đang được ghi lại và hiển thị cho người dùng với lời giải thích có ý nghĩa bằng cách gọi phương thức của View.
Cách đây không lâu (trên thực tế cách đây không lâu) Tôi bắt đầu học WPF-MVVM mà từ cái nhìn đầu tiên dường như có nhiều điểm chung với MVP. Tôi đang tìm kiếm một số lời khuyên hữu ích liên quan đến chiến lược xử lý ngoại lệ ở đó (chủ yếu thông báo cho người dùng về các vấn đề), nhưng câu hỏi này khó tìm kiếm nói chung - ý tôi là nhiều, nhưng chủ yếu là về nguyên tắc. Tôi đã tìm thấy hơn 20 ví dụ về "xử lý" ngoại lệ chưa được xử lý trong app.xaml.cs, tất cả đều rất hay, nhưng hãy nói cho tôi biết - nếu bạn biết chính xác các ngoại lệ có thể làm hỏng ứng dụng, bạn sẽ không xử lý chúng sớm hơn một chút (ngay cả khi bạn buộc phải đóng ứng dụng của mình)? Tôi không có cách nào để bắt được tất cả các ngoại lệ có thể xảy ra. Khá nhiều ngoại lệ do các vấn đề mạng gây ra, không có sẵn cơ sở dữ liệu tạm thời và do đó sẽ không được đóng ứng dụng mà không có biểu tượng lỗi đáng sợ cho người dùng bình thường cơ hội lặp lại yêu cầu của mình.
Vì vậy, với tư cách là một thử nghiệm, tôi đã thử hầu như giống như tôi đã mô tả trước đó - Tôi đã tạo sự kiện trong ViewModel để chuyển đổi ngoại lệ và đăng ký Xem với chúng. Nhưng, thẳng thắn mà nói, cách này cho tôi creep.
(Đó là một bài phát biểu rất dài, tôi biết) Câu hỏi: làm thế nào để bạn xử lý các ngoại lệ trong những gì liên quan đến việc thông báo cho người dùng khi sử dụng MVVM? Không, tôi không quan tâm đến việc xác thực dữ liệu ngay bây giờ. Bất kỳ lời chỉ trích và/hoặc tư vấn về MVP cũng được hoan nghênh.
Bạn quan tâm đến phần nào? Bắt sớm hoặc bắt trễ? Nếu bạn không bắt đầu sớm, bạn có nghĩ rằng nó có liên quan gì đến WPF/MVVM không? –