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