2012-01-05 10 views
26

@PostConstruct डॉक यह टिप्पणी किए गए तरीकों के बारे में कहते हैं: "। विधि नहीं एक जाँच अपवाद फेंक चाहिए"@PostConstruct और जांची गई अपवाद

कोई कैसे उदाहरण के साथ सौदा करेगा एक IOException जिसे इस तरह की विधि में फेंक दिया जा सकता है? बस इसे RuntimeException में लपेटें और उपयोगकर्ता को ऑब्जेक्ट की दोषपूर्ण प्रारंभिक स्थिति के बारे में चिंता करने दें? या @Post को उन स्थानों को मान्य करने और प्रारंभ करने के लिए गलत स्थान का निर्माण करना है, जिनकी निर्भरता इंजेक्शन मिली है?

+0

दिलचस्प, मैंने यह नहीं देखा था। एक अजीब प्रतिबंध की तरह लगता है, यह देखते हुए कि विधि को प्रतिबिंबित कहा जाता है। – skaffman

+0

'PostConstruct' विधि ऑब्जेक्ट्स प्रारंभ करने के लिए है। प्रारंभिक विधि में आप 'IOException' को फेंकने वाले कुछ क्यों डाल देंगे? – medopal

+1

@ मेडोपाल: मैं एक सेवा की init विधि में डीबी टेबल के अस्तित्व की जांच कर रहा हूं, जो IOException – fasseg

उत्तर

36

हां, इसे रनटाइम अपवाद में लपेटें। IllegalStateException की तरह कुछ और ठोस रूप से कंक्रीट करें।

ध्यान दें कि यदि init विधि विफल हो जाती है, तो आम तौर पर एप्लिकेशन प्रारंभ नहीं होगा।

संबंधित मुद्दे