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