मुझे obj = null
या obj.member = null
जैसी त्रुटि स्थितियों के जवाब में कई सी # एप्लिकेशन क्रैश मिले हैं। बहुत समय, 3rdPartyApp के इंटरफ़ेस से obj। और दोनों तृतीयPartyApp और MyCsApp दोनों एक साथ दुर्घटनाग्रस्त हो गए।मैं सभी अपवाद कैसे निगल सकता हूं और अपने एप्लिकेशन को क्रैश होने से कैसे बचा सकता हूं?
मैं सभी संभावित क्षेत्रों में अपवाद हैंडलिंग कैसे जोड़ सकता हूं ताकि मेरा आवेदन इन विनाशकारी परिस्थितियों में जीवित रहे? सभी स्थानों पर प्रयास करने और स्थिति से ठीक होने के लिए एक चुनौती है।
मैं इसे यथार्थवादी, विश्वसनीय और बुलेट प्रूफ के तरीके में कैसे पूरा कर सकता हूं?
[अद्यतन: उद्योग स्वचालन नियंत्रण]
संरचना:
जीयूआई (asp.net, C++) - RuntimeApp (C++) - MyCsApp (सीएस) - 3rdPartyApp (सी)
सामान्य प्रक्रिया :
- HostApp - MyCsApp
- ऑपरेटर - - (ईथरनेट Cabele के माध्यम से कनेक्ट करें) जीयूआई - आरयू ntimeApp - MyCsApp
असामान्य स्थिति:
- कुछ गैर मानक संचालन प्रक्रिया;
- कुछ हार्डवेयर समस्या आई;
- आदि
मैं बेहतर सब abnormall की स्थिति को संभाल चाहते हैं। और सबसे महत्वपूर्ण बात यह है कि मुझे लगता है कि परिस्थितियों से कैसे ठीक किया जाए।
इसके बजाए बग को ठीक करने के बारे में कैसे? – Aaronaught
@Aaronaught, हम पहले से ही कुछ स्थानों को सुरक्षित कर चुके हैं, इसका मतलब है कि हम असामान्य परिचालनों के तहत शर्श को खुश करने के बाद ही इसे ठीक कर सकते हैं। MyCsApp तृतीयPartyApp पर आधारित एक बहु-थ्रेड एप्लिकेशन। हमें कई प्रकार के लॉग (HostApp लॉग, रनटाइम लॉग, MyCsApp लॉग और तृतीयPartyApp लॉग) को पढ़ना होगा और इस मुद्दे को डुप्लिकेट करने के लिए अपना सर्वश्रेष्ठ प्रयास करना होगा। फिर हम इसे ठीक कर सकते हैं। –
दो शब्द। ऐसा मत करो अरे, वह तीन था ... ठीक है अब मैं भी कह सकता हूं क्यों। जब आप इसकी आवश्यकता होती है तो आप अपने ऐप को शानदार तरीके से बाहर निकलने से रोक देंगे। यदि आप नीचे दिए गए अन्य लोगों द्वारा उल्लिखित वैश्विक और थ्रेड स्तर अपवाद हैंडलर का उपयोग करते हैं, तो यह पहुंचने पर क्या करना है इसके लिए एक योजना है। । । त्रुटि लॉगिंग ठीक है, कॉल स्टैक समेत बग को ठीक करने में मदद मिलेगी। ऐप को रखने के बाद ज्यादातर मामलों में एक अच्छा विचार नहीं हो सकता है ... लेकिन फिर यह हो सकता है ... सुनिश्चित करने के लिए अपने कोड और पर्यावरण को जानें। –