मैं कोशिश/पकड़ ब्लॉक का उपयोग करता हूं जब कोड के माध्यम से सामान्य पथ त्रुटि के बिना आगे बढ़ना चाहिए जब तक कि वास्तव में कुछ असाधारण स्थितियां नहीं हैं - जैसे सर्वर नीचे हो रहा है, आपके क्रेडेंशियल्स की समयसीमा समाप्त हो चुकी है या गलत है। मैं अनिवार्य रूप से गैर-असाधारण त्रुटियों को संभालने के लिए इसका उपयोग नहीं करता - कहता हूं कि वर्तमान उपयोगकर्ता सही भूमिका में नहीं है। यही वह समय है, जब आप उचित रूप से ऐसी त्रुटि की अपेक्षा और संभाल सकते हैं जो असाधारण स्थिति नहीं है, मुझे लगता है कि आपको अपने चेक करना चाहिए।
यदि आपने वर्णन किया है - एक समस्या को स्थापित करने और निष्पादित करने के मामले में, कोशिश/पकड़ ब्लॉक इसे संभालने का एक शानदार तरीका है क्योंकि आप आमतौर पर क्वेरी को सफल होने की उम्मीद करते हैं। दूसरी तरफ, आप शायद यह जांचना चाहेंगे कि परिणाम की सामग्री वह है जो आप डेटा प्रवाह का उपयोग करने के बजाय नियंत्रण प्रवाह तर्क के साथ अपेक्षा करते हैं जो आपके उद्देश्य के लिए मान्य नहीं हो सकती है।
एक चीज जिसे आप देखना चाहते हैं, कोशिश/पकड़ का मैला उपयोग है। कोशिश करें/पकड़ को खराब प्रोग्रामिंग से बचाने के लिए इस्तेमाल नहीं किया जाना चाहिए - "मुझे नहीं पता कि अगर ऐसा होता है तो मैं क्या करूँगा इसलिए मैं इसे एक कोशिश/पकड़ में लपेटने जा रहा हूं और सबसे अच्छा" दयालु प्रोग्रामिंग का। आमतौर पर आप उन अपवादों को प्रतिबंधित करना चाहते हैं जिन्हें आप कोड से संबंधित नहीं हैं (सर्वर डाउन, खराब क्रेडेंशियल्स इत्यादि) ताकि आप कोड से संबंधित त्रुटियों को ढूंढ सकें और ठीक कर सकें (शून्य पॉइंटर्स इत्यादि) ।)।
बहुत बहुत धन्यवाद! जिज्ञासा से, आप एक क्वेरी को कैसे संभाल/योग्यता प्राप्त करेंगे जो डेटा की अपेक्षा करते समय खाली पंक्ति में परिणाम देगा (उदाहरण के लिए जब कोई मैन्युअल रूप से क्वेरी स्ट्रिंग में कोई संख्या बदलता है)? – jeroen
सटीक परिस्थिति पर निर्भर करता है, लेकिन यदि यह संभव है कि क्वेरी कोई डेटा नहीं लौटाएगी तो मैं केवल यह जांचूंगा कि डेटा था (पंक्ति गणना! = 0) और इसके बजाय "क्वेरी कोई परिणाम नहीं लौटा" संदेश प्रस्तुत करें। – tvanfosson