में अपवादों के अंतिम उपयोगकर्ता को सूचित करना Winforms-MVP के आधा साल के दौरान मैंने निम्नलिखित अपवाद हैंडलिंग रणनीति तैयार की है। मेरे पास इनपुट पैरामीटर (हस्ताक्षर अलग-अलग) के रूप में एक प्रतिनिधि को लेकर कई निष्पादन विधियों के साथ मूल सार प्रस्तुतकर्ता वर्ग है। व्यू और प्रेजेंटर के बीच बातचीत IView में परिभाषित घटनाओं (इनपुट) के माध्यम से और सार्वजनिक गुण (आउटपुट) या IView में परिभाषित कॉलिंग विधियों को सेट करके और दृश्य द्वारा कार्यान्वित करके किया जाता है। प्रस्तुतकर्ता में प्रत्येक इवेंट हैंडलर ठोस निष्पादन के साथ प्रदान करने वाले निष्पादन विधियों में से एक को कॉल करता है।Winforms-MVP और WPF-MVVM
मैं बहुत निश्चित अपवाद है कि हो सकता के लिए कई कैच ब्लॉक है विधि पर अमल में (जिसका मुख्य कारण है कि व्यापक रूप से इस्तेमाल कर रहे हैं बाहरी घटकों में कुछ समस्याओं का)। इन अपवादों में से प्रत्येक मौजूदा ऑपरेशन के निष्पादन को रोकता है, लॉग इन किया जा रहा है और उपयोगकर्ता को व्यू के तरीकों को कॉल करके सार्थक स्पष्टीकरण के साथ दिखाया गया है।
कुछ ही समय पहले (बहुत नहीं बहुत पहले वास्तव में) मैं WPF-MVVM सीखने पहली नज़र से एमवीपी के साथ आम में ज्यादा लगता है जो शुरू कर दिया। मैं वहां अपवाद हैंडलिंग रणनीति से संबंधित कुछ आसान सलाह ढूंढ रहा था (मुख्य रूप से उपयोगकर्ताओं को समस्याओं के बारे में सूचित करना), लेकिन सामान्य रूप से इन प्रश्नों को खोजना मुश्किल है - मेरा मतलब है, बहुत कुछ कहा जाता है, लेकिन मुख्य रूप से सिद्धांत में। मुझे app.xaml.cs में "हैंडलिंग" अनचाहे अपवादों के 20 से अधिक उदाहरण मिल गए हैं, यह सब बहुत अच्छा है, लेकिन मुझे ईमानदारी से बताएं - अगर आपको सटीक अपवाद पता हैं जो आपको ऐप को क्रैश कर सकता है, तो क्या आप उन्हें संभाल नहीं पाएंगे थोड़ा पहले (भले ही आपको अपना ऐप बंद करने के लिए मजबूर किया जाएगा)? मैं सभी संभावित अपवादों को पकड़ने का कोई प्रशंसक नहीं हूं। नेटवर्क समस्याओं, अस्थायी डेटाबेस अनुपलब्धता के कारण बहुत से अपवाद हैं और इतने पर बिना किसी डरावनी त्रुटि आइकन के आवेदन को बंद किए बिना संभाला जाना चाहिए, जिससे सामान्य उपयोगकर्ता को अपना अनुरोध दोहराने का मौका मिलता है।
तो एक प्रयोग के रूप मैं लगभग एक ही बात करने की कोशिश की, जैसा कि मैंने पहले वर्णित - अपवाद संक्रमण के लिए ViewModel में मेरे द्वारा बनाए गए घटनाओं और उन्हें देखें सदस्यता ली। लेकिन, स्पष्ट रूप से बोलते हुए, इस तरह से मुझे रेंगने देता है।
(यह एक बहुत लंबे भाषण था, मुझे पता है) प्रश्न: कैसे तुम क्या उपयोगकर्ता को सूचित जब MVVM का उपयोग कर के विषय में है में अपवाद निपटेंगे? नहीं, मुझे अभी डेटा सत्यापन में दिलचस्पी नहीं है। एमवीपी के बारे में कोई भी आलोचना और/या सलाह भी स्वागत है।
आप किस हिस्से से चिंतित हैं? जल्दी पकड़ना, या देर से पकड़ना? यदि आपने जल्दी पकड़ नहीं लिया है, तो क्या आपको लगता है कि इसका डब्ल्यूपीएफ/एमवीवीएम के साथ कुछ लेना देना है? –