The javadoc exampleमैं Google Guava से Throwables.propagateIfInstanceOf() का उपयोग कैसे करूं?
try {
someMethodThatCouldThrowAnything();
} catch (IKnowWhatToDoWithThisException e) {
handle(e);
} catch (Throwable t) {
Throwables.propagateIfInstanceOf(t, IOException.class);
Throwables.propagateIfInstanceOf(t, SQLException.class);
throw Throwables.propagate(t);
}
बहुत ठोस नहीं है। एक असली कार्यक्रम कैसा दिखता है? मैं वास्तव में Throwables.propagateIfInstanceOf(Throwable, Class)
, propagate()
, propagateIfPossible()
विधियों के उद्देश्य को समझ नहीं पा रहा हूं। मैं उनका उपयोग कब करूं?
विधि आप ने लिखा के दूसरे संस्करण बराबर नहीं है ... आप दो और 'catch' ब्लॉक कि सिर्फ अपवाद rethrow ...' RuntimeException' के लिए और एक के लिए जोड़ने की जरूरत होगी ' Error'। 'Throwables.propagate' केवल 'RuntimeException' में फेंकने योग्य लपेटता है यदि यह पहले से ही एक अनचेक अपवाद नहीं है। – ColinD
मैं अभी भी अनदेखा नहीं करता हूं। अगर मैं इसे प्रचारित करना चाहता हूं तो मैं अपवाद क्यों पकड़ना चाहता हूं? मैं कर सकता हूं: सार्वजनिक शून्य कुछ कुछ() IOException फेंकता है, SQLException {कोशिश करें {someMethodThatCouldThrowAnything(); } पकड़ो (IKnowWhatToDoWithThisException ई) {हैंडल (ई); }}। यह एक असली उदाहरण नहीं है ... –
@ जेनी: आप ऐसा नहीं कर सकते हैं 'कुछ विधि' थॉटकॉथ थ्रो कुछ() ''IOException' और' SQLException' के अलावा कुछ चेक अपवाद फेंक सकता है। – axtavt