अपवाद संचालन
अपवाद संचालन एक प्रोग्रामिंग भाषा संरचना या कम्प्युटर हार्डवेयर यंत्रावली है जिसे घटने वाले अपवादों, एक विशेष अवस्था जो प्रोग्राम कार्यान्वयन की सामान्य गति को बदल देती है, के संचालन के लिए डिजाईन किया गया है।

प्रोग्रामिंग भाषाएं अपवाद संचालन के अपने समर्थन में अत्यधिक भिन्न होती हैं (भूल जांच से अलग रूप में, जो इच्छित परिचालन की असफल समाप्ति या अमान्य स्थिति परिवर्तन जैसी विपरीत आकस्मिकताओं की प्रतिक्रिया के लिए क्रोड करती है। कुछ प्रोग्रामिंग भाषाओं में ऐसे प्रकार्य होते हैं जिन्हें सुरक्षित रूप से अमान्य इनपुट आकड़ा नहीं कहा जा सकता... या ऐसे प्रकार्य जिनके प्रतिफल मूल्य को अपवादों से अलग नहीं किया जा सकता. उदाहरण के लिए सी में, "atoi" (ASCII के लिए पूर्णांक रूपांतरण) प्रकार्य किसी भी इनपुट के लिए 0 (शून्य) फल दे सकता है जिसे किसी मान्य मान में नहीं रखा जा सकता. ऐसी भाषाओं में प्रोग्रामर को चाहिए कि या तो वह भूल जांच करे (संभवत: सहायक वैश्विक परिवर्तनीय वस्तु के माध्यम से जैसे C का अर्नो) या वैधीकरण इनपुट करे (संभवत: नियमित अभिव्यक्ति का उपयोग करते हुए).

वह डिग्री जिसके लिए ऐसी निश्चित मान्यता और भूल जांच जरूरी है, वह एक दिए हुए प्रोग्रामिंग परिवेश द्वारा प्रदत अपवाद संचालन सहायता के विपरीत होती है। हार्डवेयर अपवाद संचालन सॉफ्टवेयर औजारों द्वारा प्रदत सहायता से कुछ अलग होता है, लेकिन इनके लिए समान परिकल्पना और शब्द ही प्रचलित हैं।

सामान्य तौर पर अपवाद को एक पूर्वनिर्धारित जगह में निष्पादन की वर्तमान अवस्था को बचाते हुए तथा "अपवाद संचालक" नामक एक निश्चित सबरूटीन के लिए निष्पादन का स्विचन कर के "प्रबंधित" (समाधान) किया जाता है। यह स्थिति पर निर्भर करता है, कि बाद में संचालक सुरक्षित सूचना का उपयोग करते हुए निष्पादन को मूल जगह पर फिर से शुरू करे. उदाहरण के लिए, एक पृष्ठ दोष आमतौर पर प्रोग्राम को फिर से शुरू करने की अनुमति देती है, जबकि शून्य के द्वारा एक डिविजन पारदर्शी रूप में समाधान करने योग्य नहीं हो सकता.

प्रसंस्करण के विचार से, हार्डवेयर व्यवधान फिर से शुरू करने योग्य अपवादों के सामान हैं, हलांकि वे प्रयोगकर्ता के प्रोग्राम फ्लो से विशिष्ट रूप से जुड़े नहीं हैं।

रूटीन के लेखक के विचार से अपवाद का पैदा होना यह संकेत देने का उपयोगी माध्यम है कि एक रूटीन सामान्य रूप से नहीं चल सकती. उदाहरण के लिए, जब एक इनपुट तर्क अमान्य होता है (जैसे गुणा में एक शून्य भाजक) या एक संसाधन जिस पर यह निर्भर करता है, वह उपलब्ध नहीं होता है (जैसे एक लापता फ़ाइल, या एक हार्ड डिस्क त्रुटि). अपवाद रहित प्रणालियों में, रूटिन के लिए यह जरूरी होता है कि वे कुछ विशिष्ट रूटीन कोड त्रुटि को लौटाए. हालांकि, कभी-कभी अर्धविशिष्ट समस्या के द्वारा यह जटिल हो जाती है, जिसमें रूटीन के प्रयोग कर्ता को समान्य लौटान मूल्य से भ्रमात्मक मूल्य को अलग करने के लिए अतिरिकत्त कोड लिखने की जरूरत होती है।

जावा या NET जैसे रूटीन इंजन परिवेशों में, ऐसे औजार मौजूद रहते हैं जो रूटीन से जुड़े होते हैं और हर समय जो रूचि के अपवाद पैदा होते हैं, वे उन छुपी हुई सूचनाओं को दर्ज करते हैं जो अपवाद के फेंके जाने के समय स्मृति में मौजूद रहती है (कॉल स्टैक तथा हीप मान). इन उपकरणों को स्वचालित अपवाद संचालन या भूल रोकनेवाला औजार कहा जाता है और ये अपवादों के "मुख्य कारण" की सूचना देते हैं।

समकालीन अनुप्रयोगों को अपवाद संचालन रणनीतियों पर विचार करते समय कई तरह की डिजाइन चुनौतियों का सामना करना पड़ता है। विशेष रूप से आधुनिक उद्यम स्तर के अनुप्रयोगों में अपवादों को प्रक्रिया की सीमाओं और मशीन की सीमाओं को पार कर लेना चाहिए। यह पहचानना कि एक प्रक्रिया एक विन्दु पर, जहां यह प्रक्रिया के सॉफ्टवेयर हिस्से के द्वारा आसानी से संचालित नहीं की जा सकती, असफल हो जाती है, वह एक ठोस अपवाद संचालन रणनीति की डिजाईन का भाग है।
Q9143
प्रोग्रामिंग भाषा
Concept
None
कम्प्युटर हार्डवेयर
UNK
Q40056
प्रोग्राम
Concept
None
कार्यान्वयन
UNK
Q15777
सी
Concept
None
atoi
UNK
Q8815
ASCII
Concept
Q12503
पूर्णांक
Concept
Q204
शून्य
Concept
None
अर्नो)
UNK
None
नियमित अभिव्यक्ति
UNK
None
सबरूटीन
UNK
None
पृष्ठ दोष
UNK
None
शून्य के द्वारा एक डिविजन
UNK
None
रूटीन
UNK
None
रूटीन
UNK
None
कोड त्रुटि
UNK
None
अर्धविशिष्ट समस्या
UNK
Q1100132
जावा
UNK
None
NET
UNK
None
कॉल स्टैक
UNK
Q274089
हीप
Concept
None
स्वचालित अपवाद संचालन
UNK
Q471748
अपवाद संचालन
Concept
Q471748
अपवाद संचालन
Concept
Q471748
अपवाद संचालन
Concept
Q471748
अपवाद संचालन
Concept
Q471748
अपवाद संचालन
Concept
Q471748
अपवाद संचालन
Concept
Q471748
अपवाद संचालन
Concept
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
has quality