डेल्फी में EPROgrammerNotFound अपवाद?


132

डेल्फी 2009 में, SysUtils.pas में यह पंक्ति 425 में शामिल है:

EProgrammerNotFound = class(Exception);
  • क्या यह केवल एक ईस्टर अंडे या कुछ गंभीर है?
  • यह अपवाद कब उठाया जाना चाहिए?
  • क्या यह डेल्फी प्रिज्म और / या फ्री पास्कल में भी मौजूद है?

प्रश्न: क्या यह अपवाद वर्ग अभी भी डेल्फी (वर्तमान में XE7) में घोषित किया गया है? एक: हाँ, और यह भी प्रलेखित है !

सॉफ्टवेयर दोषों को इंगित करने के लिए गैर-मानक तरीका।

आप चलाने के समय में पाए गए सॉफ़्टवेयर दोषों को इंगित करने के लिए एक विकल्प के रूप में EPROgrammerNotFound का उपयोग कर सकते हैं।


4
इस अपवाद का हाल ही में Androids UserManager के बारे में एक उत्तर में उल्लेख किया गया है । isUserAGoat () फ़ंक्शन
mjn


मुझे लगता है कि यह डिज़ाइन पैटर्न एक औपचारिक नाम है। मैं इसे यहाँ भी देखता हूँ: YourCodeSucksException
Gungwald

जवाबों:


152

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

यह एक साधारण बातचीत थी;

"ओह, आपको उस फ़ंक्शन में EProgrammerNotFound अपवाद को उठाना चाहिए था।"
"LOL! हमें उस अपवाद को जोड़ना चाहिए और देखना चाहिए कि कौन नोटिस करता है।"
"मुझे आश्चर्य है कि वहाँ होने के बारे में कितनी अटकलें हैं?"

इसलिए, मुझे लगता है कि मैं बस इतना कह सकता हूं कि "आप सभी ने हमारे हाथों में सही खेला है; -) ... बुवाहा-हैरान!"


9
क्या यह ट्रॉन में सबसे आम अपवाद नहीं है?
LaKraven

1
इस तरह का अपवाद होना काफी उचित है। मैं हमेशा इस अपवाद को ENotImplementedException
stanleyxu2005

6
@ stanleyxu2005, इसके लिए आप ENotImplementedअपवाद का उपयोग कर सकते हैं ।
तिलामा

मेरा एक रिवाज है EProgrammerException। मैं EProgr...कोड अंतर्दृष्टि पूरा करने के लिए कोड टाइप कर रहा था जब मुझे दिखाया गया था EProgrammerNotFound। दुःख की बात है कि मैं इसका उपयोग नहीं कर सकता EProgrammerNotFound, जैसा कि मेरे EProgrammerExceptionउतरने से होता है EInvisibleException; जैसा कि इसका मतलब था कि एक असफलता और एक EAbortअपवाद के बीच एक क्रॉस (मैंने एक प्रोग्रामर को कुछ गड़बड़ करते हुए पकड़ा, और मैं यहाँ रुकने वाला हूँ)।
इयान बोयड

24

इसका उपयोग "फिक्स-इनलाइन" तकनीक के साथ संयोजन में किया जाता है जिसके लिए प्रोग्रामर को exe फ़ाइल में लिंक करना होगा;;


20

इसे डेल्फी 2009 में पेश किया गया था, अभी भी डेल्फी 2010 में मौजूद है, और हाल ही में इंटरनेट पर कुछ और ध्यान दिया गया है ।

मुझे लगता है कि यह " ईबीसीएके " (चेयर एंड कीबोर्ड के बीच की त्रुटि) और डेल्फी संस्करण संख्या 13 के लंघन के समान एक ईस्टर अंडे है ।

EProgrammerNotFound

  • SysUtils इकाई की Win32 शाखा में घोषित किया गया है, लेकिन RTL या VCL में कहीं भी उपयोग नहीं किया गया है
  • डेल्फी प्रिज्म में मौजूद नहीं है
  • डेल्फी 2009 में पेश किया गया था, इसलिए VCL.NET में मौजूद नहीं था
  • वर्तमान में (संस्करण 3.5) .NET फ्रेमवर्क में समान नहीं है (निश्चित रूप से क्यों, इन लोगों को हास्य नहीं है )

मुझे नहीं लगता कि EProgrammerNotFound वास्तव में उपयोग करने के लिए है, लेकिन चूंकि यह वहां है, इसलिए लोग इसका मजाक उड़ाएंगे (इसी तरह किसी आवारा "const False = True; True = not False?" को किसी भी तरह से सोर्सकोड में डालना)।

--jeroen


2
हम्म, प्रोग्रामर न केवल एक व्यक्ति है, बल्कि एक उपकरण भी है (प्रोग्रामिंग के लिए जैसे एम्बेडेड उपकरणों का फ्लैश)। क्या मुझे यहाँ IPhone की गंध आती है? नाह, तो यह IDE स्रोत में होगा, न कि sysutils।
मार्को वैन डे वोर्ट

8
EBCAK? मैंने हमेशा इसे PEBKAC के रूप में व्यक्त किया। (कीबोर्ड और चेयर के बीच समस्या मौजूद है)।
मेसन व्हीलर

11

मूल बहस योग्य है, लेकिन यह थोड़ी देर के लिए जाना जाता है ...
मार्को कैंटू ने "फन साइड ऑफ डेल्फी" सत्र में इसका मजाक उड़ाया।
IMO, इसका अधिक बार उपयोग किया जाना चाहिए ;-)

आगे पढ़ें:
http://wings-of-wind.com/2010/01/12/best-programming-feature-ever/
http://blog.barrkel.com/2008/11/reference-counted-pointers-revisited .html

पुनश्च: मुझे नहीं लगता कि यह डेल्फी प्रिज्म, फ्री पास्कल या सी # (लेकिन यह होना चाहिए) में मौजूद है। <G>


5

यह संकलक की "सिंटैक्स त्रुटि: प्रोग्रामर अपेक्षित" का रनटाइम एनालॉग है। ;>


2
आपने कंपाइलर स्ट्रिंग्स के साथ बिल्ड को देखा होगा जो जिव के लिए स्थानीय है!
16

4

यह एक प्रकार का स्वयं का मज़ाक है, आप इस कोड को आज़मा सकते हैं

raise EProgrammerNotFound.Create('Jack is away');

या

raise ENotImplemented.Create('May be in future this will work');

ऊपर डेल्फी 10 सिएटल में काम करता है।


3

प्रोग्रामर के साथ, यह प्रोग्रामर नहीं है जो डेल्फी के पीछे बैठा है जिसे संदर्भित किया गया है। मुझे लगता है कि इसका उपयोग इस तथ्य के लिए किया जाता है कि D2009 और इसके बाद के संस्करण की उन्होंने योजना बनाई थी (कभी भी इसका उपयोग नहीं किया था कि अगर यह काम करता है तो पता नहीं है) कि प्रत्येक वस्तु प्रतीक्षा योग्य थी।


वास्तव में, यह प्रयोग करने योग्य है। आप किसी भी वस्तु को पारित कर सकते हैं TMonitor.Enterऔर TMonitor.Exit। और मुझे यकीन नहीं है कि यह एक ईस्टर अंडे है या नहीं ...
jpfollenius

1
किसी वस्तु को प्रतीक्षा योग्य होने का प्रोग्रामर के साथ क्या करना है या क्या वे पाए जाते हैं? और किस प्रोग्रामर को संदर्भित किया जा रहा है?
रोब कैनेडी

0

मैं एक प्रोग्रामर हूं, क्या मैं इससे अपवाद हूं?

मार्को कैन्टो ने अपनी पुस्तक 'डेल्फी 2009 हैंडबुक' - पृष्ठ 242 में भी इसका वर्णन किया है। वे बताते हैं कि वीसीएल स्रोत कोड में इसका कभी भी उपयोग नहीं किया गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.