Erlang 21

error_handler




erlang

error_handler

मॉड्यूल

error_handler

मॉड्यूल सारांश

डिफ़ॉल्ट सिस्टम त्रुटि हैंडलर।

विवरण

यह मॉड्यूल परिभाषित करता है कि कुछ प्रकार की त्रुटियां होने पर क्या होता है।

निर्यात

उठाना_कुंड_अनुप्रयोग (मॉड्यूल, कार्य, आर्ग) -> no_return ()

प्रकार

तर्क की एक (संभवतः खाली) सूची Arg1,..,ArgN

स्टैकट्रेस के साथ एक अपरिभाषित अपवाद उठाता है, यह दर्शाता है कि Module:Function/N अपरिभाषित है।

अपरिभाषित_फंक्शन (मॉड्यूल, फंक्शन, आर्ग्स) -> कोई भी ()

प्रकार

तर्क की एक (संभवतः खाली) सूची Arg1,..,ArgN

इस फ़ंक्शन को रनटाइम सिस्टम द्वारा कहा जाता है यदि कोई कॉल Module:Function(Arg1,.., ArgN) और Module:Function/N अपरिभाषित है। ध्यान दें कि इस फ़ंक्शन का मूल्यांकन मूल कॉल करने की प्रक्रिया के अंदर किया जाता है।

यह फ़ंक्शन पहले ऑटोलैड Module प्रयास करता है। यदि यह संभव नहीं है, तो एक undef अपवाद उठाया जाता है।

यदि Module को लोड करना संभव है और फ़ंक्शन Function/N निर्यात किया जाता है, तो इसे कहा जाता है।

अन्यथा, यदि फ़ंक्शन '$handle_undefined_function'/2 निर्यात किया जाता है, तो इसे '$handle_undefined_function'( फ़ंक्शन, आर्ग्स) कहा जाता है।

चेतावनी

साधारण एप्लिकेशन कोड में '$handle_undefined_function'/2 को परिभाषित करना बहुत हतोत्साहित करता है। सूक्ष्म त्रुटियां करना बहुत आसान है जो डीबग करने में लंबा समय ले सकते हैं। इसके अलावा, स्थैतिक कोड विश्लेषण के लिए कोई भी उपकरण (जैसे कि डायलेजर और Xref) '$handle_undefined_function'/2 के उपयोग का समर्थन करता है और ऐसा कोई समर्थन नहीं जोड़ा जाएगा। ध्यान से अन्य, कम खतरनाक, समाधान होने के बाद ही इस फ़ंक्शन का उपयोग करें। संभावित वैध उपयोग का एक उदाहरण परीक्षण और डिबगिंग के दौरान अन्य उप-प्रणालियों के लिए स्टब्स बना रहा है।

अन्यथा एक undef अपवाद उठाया जाता है।

अपरिभाषित_लम्बा (मॉड्यूल, मज़ा, हथियार) -> शब्द ()

प्रकार

तर्क की एक (संभवतः खाली) सूची Arg1,..,ArgN

इस फ़ंक्शन का मूल्यांकन तब किया जाता है जब कोई कॉल Fun(Arg1,.., ArgN) जब Fun(Arg1,.., ArgN) को परिभाषित करने वाला मॉड्यूल लोड नहीं होता है। मूल कॉल करने की प्रक्रिया के अंदर फ़ंक्शन का मूल्यांकन किया जाता है।

यदि Module की व्याख्या की जाती है, तो दुभाषिया का आह्वान किया जाता है और व्याख्या की गई Fun(Arg1,.., ArgN) कॉल का रिटर्न मान वापस आ जाता है।

अन्यथा, यह संभव हो जाता है, यदि संभव हो तो apply(Fun, Args) Module प्रयास के बाद apply(Fun, Args) का मूल्य apply(Fun, Args) । यदि यह संभव नहीं है, तो कॉल बाहर निकलने के कारण असफल हो जाती है।

टिप्पणियाँ

error_handler में कोड जटिल है। त्रुटि हैंडलर, कोड सर्वर की init प्रक्रिया और कोड के I / O तंत्र के बीच बातचीत को पूरी तरह से समझने के बिना इसे न बदलें।

कोड परिवर्तन जो छोटे लगते हैं, गतिरोध पैदा कर सकते हैं, क्योंकि अप्रत्याशित परिणाम हो सकते हैं। इस प्रकार के कोड में input का उपयोग खतरनाक है।