मैं चाहता हूं कि मेरा आवेदन कभी बेवकूफ न हो। मुझे पता है कि कोड गुणवत्ता इसके लिए मूल समाधान है। लेकिन जब भी कुछ अप्रत्याशित बग होता है तब भी मुझे कभी भी क्रैश करने के लिए एक एप्लिकेशन की आवश्यकता नहीं होती है। यहां कोड है जिसे मैं आजमा देना चाहता हूं।आईफोन विकास: उद्देश्य-सी में अपवाद/एनएसईआरआर कैच कैसे करें?
-(void)testException
{
@try
{
NSString* str;
[str release];
}
@catch(NSException* ex)
{
NSLog(@"Bug captured");
}
}
मुझे पता है कि यह काम नहीं करता है। क्योंकि release
कभी अपवाद नहीं उठाता है। यहां मेरे प्रश्न हैं:
- इस तरह के उद्देश्य तक कैसे पहुंचे, बग पकड़ा जाएगा, कोई दुर्घटना नहीं होगी?
- मुझे कैसे पता चलेगा कि कौन सी सिस्टम लाइब्रेरी अपवाद उठाएगी और इसलिए मैं कुछ कोड लिख सकता हूं और जानता हूं कि यह काम करता है?
यहाँ मैं
- एक क्या पढ़ा है है। Cocoa
- बी के लिए अपवाद प्रोग्रामिंग विषय। कोको
मैं एक अनुभवी माइक्रोसॉफ्ट प्रोग्रामर पृष्ठभूमि जिसमें पकड़ अपवाद या अनपेक्षित अपवाद हमेशा एक बहुत बुरा वातावरण में दुर्घटनाग्रस्त से मेरा कार्यक्रम को रोकने से आते हैं के लिए हैंडलिंग प्रोग्रामिंग
गाइड में त्रुटि।
आप लोग/गैल्स (मैक प्रतिभा प्रोग्रामर) कैसे दुर्घटना मुक्त कार्यक्रम हुए? अपना अनुभव साझा करें।
आपके उत्तर के लिए धन्यवाद। आपका उत्तर मुझे मेमोरी प्रबंधन को बेहतर ढंग से समझने और उद्देश्य सी के बारे में अपना ज्ञान बढ़ाने में मदद करता है। हालांकि, मैंने कोड की कोशिश की है, वे कभी दुर्घटनाग्रस्त नहीं होते हैं (वे होना चाहिए, मैं 4 बार रिलीज करना चाहिए, यदि संदर्भ संभव हो तो संदर्भ संख्या 3 होनी चाहिए)। लेकिन कोई भी दुर्घटना नहीं हुई, कोई अपवाद फेंक नहीं गया। मुझे पता है कि यह कभी-कभी दुर्घटनाग्रस्त हो जाएगा। लेकिन कब नहीं पता। तो वापस बुनियादी, क्या दुर्घटना से बचने का कोई तरीका है? –
बरकरार रखने के साथ चिंतित मत बनो। आपको इसे कभी भी जांचना नहीं चाहिए, ऐसा कभी नहीं होता है जो आपको लगता है कि यह विभिन्न कारणों से होना चाहिए। आपको एक समय में स्मृति प्रबंधन की एक विधि का ख्याल रखना चाहिए। कोको स्मृति प्रबंधन के लिए Stackoverflow और Google खोजें। आपकी मदद करने के लिए बहुत सारे संसाधन हैं। पहले सीखना मुश्किल हो सकता है, लेकिन अधिक स्वचालित हो जाता है। –