अपवादों को किसने डिज़ाइन किया था?


22

अपवाद और अपवाद हैंडलिंग कहां से आए?

मुझे पसंद है कि .NET कैसे उपयोग करता है, मुझे पसंद है कि C ++ इसका समर्थन कैसे करता है (लेकिन लाइब्रेरी दुर्भाग्य से रिटर्न कोड का उपयोग करते हैं या इसके बजाय C में लिखा जाता है)। मैं सभी नई भाषाओं में इसका बहुत मानक जानता हूं, लेकिन पहले इसे किसने डिजाइन किया था या यह कहां से आया था?

क्या C ++ इसका उपयोग करने वाली पहली भाषा है? मैं किसी भी अन्य पुराने है कि पता नहीं है।


7
जाहिर है, 1940 में प्लांकालुकल के पास अपवाद हैंडलिंग था, हालांकि पहला कंपाइलर लगभग 50 साल बाद तक मौजूद नहीं था। ( en.wikipedia.org/wiki/Plankalk%C3%BCl )
FrustratedWithFormsDesigner

आप कह सकते हैं कि C ++ सर्वप्रथम आइवरी टॉवर भाषा नहीं थी जिसने अपवादों को जन-जन तक पहुंचाया। लेकिन अवधारणा शुरुआत से (या एक लंबे समय के लिए, अपनी पिक ले) के आसपास रही है।
मार्टिन यॉर्क

11
किसी को गला घोंटने की तलाश है? मैं मज़ाक कर रहा हूँ ...
मार्क कैनलास

1
क्या हमें हार्डवेयर अपवादों से होने वाले प्रभावों को ध्यान में रखना चाहिए?
रॉन्ग

1
@FrustratedWithFormsDesigner: मेरा जबड़ा बस फर्श से टकराया। मैं कोनराड ज़ूस के बारे में जानता था, लेकिन वह नहीं जानता था। वह हम सबका पिता है।
बॉब मर्फी

जवाबों:


20

अपवादों को उठाना और फँसाना लगभग काफी समय से रहा है। इस साइट का कहना है कि अपवाद PL / I में प्रस्तुत किए गए थे: http://www.math.grin.edu/~rebelsky/Courses/CS302/98S/Outlines/outline.02.html

जो इस पृष्ठ के अनुसार 1967 में था, (कंप्यूटर भाषाओं और सुविधाओं का एक व्यापक लेकिन व्यापक नहीं चार्ट शामिल है): http://community.borland.com/article/0,1410,22741,00.html

कई भाषाओं ने इस तकनीक को उठाया - एडीए, अल्गोल, फोरट्रान, एमएल [...]

यहाँ से उद्धृत ।

विकिपीडिया में PL / 1 में अपवाद से निपटने के बारे में अधिक विवरण है । यह पृष्ठ पीएल / 1 को भी दर्शाता है। बेशक, यह कोई वैज्ञानिक प्रमाण नहीं है :-)

पीएल / 1 के लिए डिज़ाइन किए गए व्यक्ति के रूप में, लेख में कोई नाम नहीं है, केवल आईबीएम पर विभिन्न समितियाँ हैं।


पीएल / I में प्रदर्शन वास्तव में विशिष्ट प्रकार के आयोजन थे। आप अपनी खुद की घटनाओं को परिभाषित और बढ़ा सकते हैं और उन्हें पकड़ने के लिए इवेंट हैंडलर लिख सकते हैं। ISTR कुछ सिस्टम सुविधाओं (VTAM?) में इसके लिए कुछ समर्थन था, इसलिए आप वास्तव में इवेंट-संचालित प्रोग्राम लिख सकते थे।
TMN

क्या आप सी ++ से पहले की किसी भी भाषा के बारे में सोच सकते हैं जिसने स्टैक अनइंडिंग के दौरान क्रमबद्ध सफाई की सुविधा प्रदान की है?
सुपरकैट

फोरट्रान में अपवाद? आइए ...
मिशेल कोस्मुलस्की

6

हॉफ, मोसेन्सबॉक और पीर्केलबॉयर (उनके 1997 के पेपर ज़ीरो-ओवरहेड एक्ससेप्शन हैंडलिंग इन मेटाप्रोग्रामिंग का उपयोग करते हुए ) पुष्टि करते हैं कि अपवादों की अवधारणा को सत्तर के दशक में सुझाया गया था, जिसमें जॉन के बारे में बताया गया था - नॉरेनफ़ 1975 के अपवाद अपवाद: मुद्दे और संचार के संचार में एक प्रस्तावित नोटेशन पेपर । एसीएम । इसमें वह कॉलबैक को पंजीकृत करने के सामान्य विचार के साथ आधुनिक अपवाद से निपटने का अनुमान लगाता है, और उसकी प्रस्तावित धारणा आधुनिक विशेषता मेटाडेटा विनिर्देशों की तरह अधिक दिखती है try/catch, लेकिन यह (या कम से कम इसका खंड 2) अपवाद हैंडलिंग की स्थिति का एक बड़ा अवलोकन है मध्य सत्तर के दशक।

शायद एलेफraise/rescue में नोट भी एक तंत्र है , जिसे कोई ब्लॉक के एक आदिम रूप के रूप में देख सकता है , ऐसा न हो कि हम सोचते हैं कि वे ज़्यूस से एथेना की तरह स्ट्रॉस्टग्रुप के ब्रो से पूरी तरह से बनते हैं।catch


3
क्या आपने पहले उत्तर पढ़ा था ? यह 1967 के अपवादों को दर्शाता है : आठ साल पहले जिस तारीख को आप संदर्भित करते हैं
gnat

4
मैंने किया था, लेकिन मैं पीएल / I में C ++ और ON CONDITION स्टेटमेंट में अपवादों की उपस्थिति के बीच कुछ इतिहास का पता लगाने की कोशिश कर रहा था। मुझे लगता है कि मेरे अलावा बेकार था?
Wtrmute

1
असल में, अपवाद संबंधी कई कागजात अवलोकन, चर्चा और आधुनिक अपवाद तंत्र पर इसके प्रभाव के लिए अच्छी तरह से संदर्भित करते हैं - इसे उचित मानने के लिए। दूसरी ओर, "अपवाद हैंडलिंग" में कई भाषाओं में अलग-अलग शब्दार्थ हैं, और मैं गुडेनफ के प्रकाशन से पहले यह विशेष रूप से सच होने की उम्मीद करूंगा। इसे ध्यान में रखते हुए, इस सवाल का एक रूढ़िवादी जवाब बस एक सशर्त कूदने के लिए इसे वापस ट्रेस कर सकता है।
थियागो सिल्वा

@gnat: क्या आपने उस विचार को पढ़ा है जो 1940 के विचार का पता लगाता है? यहां तक ​​कि अगर वह टिप्पणी मौजूद नहीं थी, तो सवाल यह है कि "अपवाद कहां से आए?", "अपवादों का उपयोग किए जाने पर जल्द से जल्द तारीख का नाम नहीं"।
माइकल शॉ

@ मिचेलशॉव का जवाब मैं आपके द्वारा उल्लेखित टिप्पणी के रूप में उसी समय पोस्ट किया गया हूं, और यह पूछे गए प्रश्न ("पहले होने") को संबोधित करने का भी प्रयास करता है। इसके विरोध के रूप में, यह पोस्ट स्पष्ट रूप से पहले दिखाई देने वाले साक्ष्य को स्वीकार करने में विफल रही और प्रश्न को संबोधित करने की कोशिश भी नहीं की
gnat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.