दुर्भाग्य से, बिल्डिंग एप्लिकेशन में कोडिंग शामिल है। भले ही आप अपने कार्यक्रम को कितनी सावधानी से लिखें / डिबग करें, हर उस स्थिति की कल्पना करना असंभव होगा जो गलत हो सकती है। अनुभवहीन उपयोगकर्ता, उदाहरण के लिए, डेटा क्षेत्र में कोई भी xxisting फ़ाइल खोलने या खराब मान इनपुट करने का प्रयास कर सकता है।
उपयोगकर्ता गलतियाँ करते हैं और हमें जहाँ और जहाँ भी संभव हो, इन त्रुटियों को संभालने / रोकने के लिए तैयार रहना चाहिए।
त्रुटियां, अपवाद?
एक अपवाद आम तौर पर एक त्रुटि स्थिति या एक अन्य घटना है जो एक आवेदन में निष्पादन के सामान्य प्रवाह को बाधित करती है। जब भी कोई त्रुटि कोड की एक पंक्ति को संसाधित करने से उत्पन्न होती है, डेल्फी अपवाद वस्तु नामक TObject से एक वस्तु वंशज बनाता है (उठाता है)।
संरक्षित ब्लॉक
एक एप्लिकेशन अपवाद को समाप्त करता है या तो कुछ समाप्ति कोड को निष्पादित करके, अपवाद को संभालने या दोनों। किसी कोड के भीतर त्रुटि / अपवाद को फंसाने में सक्षम करने का तरीका, अपवाद बयानों के पहरेदार ब्लॉक में होना चाहिए। सामान्य कोड जैसा दिखता है:
प्रयत्न। {कोड का संरक्षित ब्लॉक} के सिवाय। शुरू करो {अपवाद ब्लॉक-हैंडल SomeException} अंत; समाप्त;
ए कोशिश करो / छोड़कर कथन कोड के पहरेदार ब्लॉक में कथनों को निष्पादित करता है। यदि कथन बिना किसी अपवाद के उठाए जा रहे हैं, तो अपवाद ब्लॉक को नजरअंदाज कर दिया जाता है, और अंत कीवर्ड के बाद बयान पर नियंत्रण पारित किया जाता है।
उदाहरण:
... शून्य: = 0; प्रयत्न। डमी: = 10 / शून्य; के सिवाय। EZeroDivide पर। MessageDlg ('शून्य से भाग नहीं कर सकता!', MtError, [mbOK], 0); समाप्त;...
संसाधनों की सुरक्षा करना
जब कोड का एक खंड एक संसाधन प्राप्त करता है, तो यह सुनिश्चित करना अक्सर आवश्यक होता है कि संसाधन फिर से जारी हो (या आपको मिल सकता है स्मृति रिसाव), चाहे कोड सामान्य रूप से पूरा हो या एक अपवाद द्वारा बाधित हो। इस स्थिति में, सिंटैक्स का उपयोग करता है आखिरकार कीवर्ड और जैसा दिखता है:
{संसाधनों को आवंटित करने के लिए कुछ कोड} प्रयत्न। {कोड का संरक्षित ब्लॉक} आखिरकार। {समाप्ति ब्लोक - मुक्त संसाधनों के लिए कोड} समाप्त;
उदाहरण:
... AboutBox: = TAboutBox। बनाना (निल); प्रयत्न। AboutBox। ShowModal; आखिरकार। AboutBox। रिलीज; समाप्त;...
आवेदन। OnException
यदि आपका एप्लिकेशन उस त्रुटि को हैंडल नहीं करता है जो अपवाद का कारण है, तो डेल्फी अपने डिफ़ॉल्ट अपवाद हैंडलर का उपयोग करेगा - यह सिर्फ एक संदेश बॉक्स को पॉप अप करेगा। आप TAPlication ऑब्जेक्ट के लिए OnException ईवेंट में कोड लिखने पर विचार कर सकते हैं, ताकि एप्लिकेशन स्तर पर त्रुटियां हो सकें।
अपवादों पर विराम
अपवाद हैंडलिंग के साथ एक कार्यक्रम का निर्माण करते समय, आप शायद डेल्फी को अपवादों पर नहीं तोड़ सकते। यदि आप डेल्फी को दिखाना चाहते हैं तो यह एक बड़ी विशेषता है जहां अपवाद हुआ है; हालाँकि, यह कष्टप्रद हो सकता है जब आप अपने स्वयं के अपवाद से निपटने का परीक्षण करते हैं।
कुछ अंतिम शब्द
इस लेख का विचार आपको केवल एक त्वरित नज़र देने के लिए है कि क्या अपवाद हैं। अपवाद हैंडलिंग पर आगे की चर्चा के लिए, विचार करें डेल्फी एक्सेप्शन हैंडलिंग में अपवादों को संभालने पर, जैसे एक उपकरण का उपयोग कर बग रिपोर्टिंग के साथ डेल्फी क्रैश / एक्ससेप्शन हैंडलिंग और निम्नलिखित संबंधित लेखों में से कुछ: