हाँ। प्रभावी जावा के अनुसार -
जबकि जावा भाषा विशिष्टता यह आवश्यकता नहीं है, इस बात की प्रबल परंपरा है कि त्रुटियों JVM द्वारा उपयोग के लिए आरक्षित हैं संसाधन की कमी, अपरिवर्तनीय विफलताओं, या अन्य स्थितियों है कि यह कर इंगित करने के लिए है निष्पादन जारी रखना असंभव है। इस सम्मेलन की लगभग सार्वभौमिक स्वीकृति को देखते हुए, किसी भी नए त्रुटि उपखंड को लागू नहीं करना सबसे अच्छा है। इसलिए, आपके द्वारा लागू किए गए सभी अनचेक फेंकने वाले को RuntimeException (सीधे या परोक्ष रूप से) subclass करना चाहिए।
अनियंत्रित अपवाद के उपयोग के नीचे की सिफारिश की है: -
- उपयोग क्रम अपवाद प्रोग्रामिंग त्रुटियों से संकेत मिलता है।
- यदि आपको लगता है कि किसी शर्त को पुनर्प्राप्ति की अनुमति देने की संभावना है, तो चेक अपवाद का उपयोग करें; यदि नहीं, तो रनटाइम अपवाद का उपयोग करें। यदि यह स्पष्ट नहीं है कि रिकवरी संभव है या नहीं, तो संभवतः आप एक अनचेक अपवाद का उपयोग कर बेहतर हो सकते हैं।
अनियंत्रित अपवाद का दस्तावेजीकरण के बारे में -
प्रत्येक अनियंत्रित अपवाद है कि एक विधि फेंक कर सकते हैं दस्तावेज़ के लिए जावाडोक @throws टैग का प्रयोग करें, लेकिन का उपयोग नहीं करते कीवर्ड विधि में अनियंत्रित अपवाद शामिल करने के लिए फेंकता घोषणा।
बस सावधान रहें कि मौजूदा कोड में नए अपवाद जोड़ना मूल रूप से आपके एपीआई के पूर्व संस्करणों के साथ संगतता को तोड़ देता है। निश्चित रूप से, अगर आप केवल रनटाइम अपवाद जोड़ते हैं तो यह अभी भी द्विआधारी संगत है, लेकिन व्यक्तिगत रूप से मैं इसे और भी बदतर मानता हूं: अनजान लोग अब नए संस्करण से लिंक होंगे और अचानक अजीब त्रुटियां प्राप्त करेंगे .. उह। – Voo