अरे स्टैक ओवरफ्लो समुदाय,अपवाद फेंकने और पकड़ने
अपवाद फेंकने के संबंध में। आम तौर पर, जब मैं फेंक और अपवाद करता हूं, और मैं इसे कब पकड़ूं?
मान लीजिए कि मैं इन परिस्थितियों में आया हूं जहां मुझे कुछ समस्या होने के कारण छोड़ना है और मैं इससे ठीक नहीं हो सकता। क्या मैं फेंकता हूं या करता हूं?
मैं अभी ऐसा:
try {
// some code
}
catch (IOException e) {
logger.info("Failed to do something, and cannot continue" + e.getMessage(), e);
e.printStackTrace();
throw e;
}
यह करने के लिए सही बात है? अगर मैं अपवाद फेंक दिया तो क्या यह अधिक उपयुक्त होगा? क्षमा करें, मैं अपवादों पर एक नौसिखिया हूं :)
तो आप कह रहे हैं कि अगर मेरे पास अपवाद है कि मैं उस विधि के अंदर संभाल नहीं सकता, तो मुझे इसे फेंक देना चाहिए। लेकिन, अगर मैं उसी विधि के अंदर से पुनर्प्राप्त कर सकता हूं, तो वह तब होता है जब विधि के अंदर पकड़ना उचित होता है। साथ ही, क्या मुझे अपरिवर्तनीय विधि को लागू करने वाले तरीकों (विधियों, परीक्षणों) के लिए अपवाद को छोड़ना चाहिए? –
हां, आप केवल पकड़ते हैं कि आप कुछ कैसे कर सकते हैं। मैं अंतिम भाग को समझ नहीं पाया, क्या आप इसे फिर से बदल सकते हैं? –
इसके बारे में क्षमा करें, मुझे दोबारा प्रयास करने दो। मैं वास्तव में कहने का मतलब यह था कि जब मैं ऐसी विधि का उपयोग करता हूं जो कुछ यूनिट परीक्षण या मुख्य विधि में अपवाद फेंकता है, और मान लें कि मैं परीक्षण को अपवाद फेंक देता हूं। वहां क्या होता है? क्या यह अभी निकल गया है? क्या यह त्रुटि संदेशों को प्रिंट करता है? इस स्थिति में करने के लिए सबसे उपयुक्त बात क्या है? –