मैंने कुछ शुरुआती परिचय को छोटे-छोटे से पढ़ा है और एक विषय गायब है। यह त्रुटि प्रबंधन है। यह कैसे किया जाता है? क्या वस्तुएं कुछ प्रकार के अपवाद फेंकती हैं? किसी को कुछ त्रुटि संदेश भेजें?स्मॉलटॉक त्रुटि हैंडलिंग
उत्तर
एक अपवाद को बढ़ाने के लिए:
[ 1/0 ] on: ZeroDivide do: [ Transcript showln: 'Oops! Zero divide!'].
एक अपवाद को संभालने और अपवाद की जानकारी से कुछ का उपयोग करने के लिए::
[ 1/0 ] on: Error do:
[:e | Transcript showln: 'Oops! ' , e className , '!'].
कुछ सुनिश्चित करने के लिए
MyException signal.
MyException signal: 'With an error message'.
एक अपवाद को संभालने के लिए हमेशा होता है (एक ला try finally
):
[ 1/0 ] ensure: [ Transcript showln: 'This will always run' ]
मैं बस यह इंगित करना चाहता हूं कि @ फ्रैंक शीयर के रास्ते के अलावा एक और संभावना है। मेरा मतलब डिजाइन द्वारा है। कभी-कभी कॉलर को फेंकने के लिए और अधिक उपयोगी होता है कि अब क्या परेशानी फेंक रही है।
#on:do:
पूरी तरह स्वीकार्य है लेकिन अधिकांश समय आपको नहीं पता कि पहले तर्क के रूप में क्या रखा जाए। block on: ?? do: something
।
मुझे एक उदाहरण लेते हैं। दरअसल संग्रह पुस्तकालय से एक उदाहरण है। विशेष रूप से शब्दकोश के बारे में।
aDict at: 4
यहां क्या होता है यदि 4
शब्दकोश में नहीं है। आपको बस एक सादा त्रुटि मिलती है जिसे आपको #on:do:
में पकड़ने की आवश्यकता है।
aDict at: 4 ifAbsent: [^#noSuchThingAs4]
आपको त्रुटि #on:do:
रूप में एक ही संभाल रहे हैं, लेकिन अब तुम जानते हो क्यों:
लेकिन इस स्थिति से निपटने के लिए एक बेहतर तरीका है। तो आप अपनी त्रुटि को सही तरीके से संभालने के लिए दूसरे में ऐसा कर सकते हैं।
aConnection connectIfFailed: [ ^#maybeRetryHere ]
ध्यान रखें कि आपको एक ब्लॉक में अपवाद कोड डालना होगा ताकि त्रुटि होने तक इसका मूल्यांकन नहीं किया जा सके।
aDict at: 4 ifAbsentPut: self default
काम कर सकता है लेकिन यह गलत है। उम्मीद है कि आपकी मदद करो।
पढ़ें Pharo करके उदाहरण 2 अध्याय: https://gforge.inria.fr/frs/download.php/26600/PBE2-Exceptions-2010-03-02.pdf
- 1. स्मॉलटॉक
- 2. स्मॉलटॉक
- 3. स्मॉलटॉक
- 4. स्मॉलटॉक
- 5. स्मॉलटॉक
- 6. पेज/जावास्क्रिप्ट त्रुटि हैंडलिंग
- 7. pgp_sym_encrypt/pgp_sym_decrypt त्रुटि हैंडलिंग
- 8. सीएक्सएफ त्रुटि हैंडलिंग ओवरराइड
- 9. PHP DOMDocument त्रुटि हैंडलिंग
- 10. कोडनिर्देशक ईमेल त्रुटि हैंडलिंग
- 11. सक्रिय संसाधन त्रुटि हैंडलिंग
- 12. malloc त्रुटि हैंडलिंग
- 13. jQuery AJAX त्रुटि हैंडलिंग
- 14. त्रुटि हैंडलिंग/लॉगिंग रणनीति
- 15. अच्छा त्रुटि हैंडलिंग अभ्यास
- 16. स्मॉलटॉक कोड
- 17. फेरो स्मॉलटॉक
- 18. लूप में vba त्रुटि हैंडलिंग
- 19. अधिकतम निष्पादन समय त्रुटि हैंडलिंग
- 20. एसक्यूएल सर्वर त्रुटि हैंडलिंग पैटर्न
- 21. पाइथन विशिष्ट त्रुटि कोड हैंडलिंग?
- 22. कोणीय: $ http 404 त्रुटि हैंडलिंग
- 23. Tastypie-django कस्टम त्रुटि हैंडलिंग
- 24. एएनएसआई स्मॉलटॉक और स्मॉलटॉक -80 का क्या अंतर है?
- 25. स्मॉलटॉक में आरडीएफ पार्सिंग
- 26. स्मॉलटॉक और आईओसी
- 27. फारो स्मॉलटॉक और mySql
- 28. स्मॉलटॉक प्रारंभिक चर
- 29. स्मॉलटॉक वेब विकास सॉफ्टवेयर
- 30. डब्ल्यूसी और स्मॉलटॉक
अच्छा बिंदु: त्रुटि हैंडलिंग अक्सर ifAbsent ढंग से एपीआई में शामिल किया हुआ। –