कहें कि मेरे पास एक विधि में निम्न पंक्ति है:दबाएं या पकड़ें अपवाद जो कभी नहीं हो सकता है?
String encodedString = URLEncoder.encode(foo, "utf-8");
यह विधि UnsupportedEncodingException
फेंकता है। जो बेहतर है:
/** @throws UnsupportedEncodingException umm...never
*/
public void myMethod() throws UnsupportedEncodingException {
...
String encodedString = URLEncoder.encode(foo, "utf-8");
...
}
(कॉलर को स्वयं को पकड़ने के लिए मजबूर करना) या:
public void myMethod() {
try {
...
String encodedString = URLEncoder.encode(foo, "utf-8");
...
catch(UnsupportedEncodingException e) {
Logger.log("cosmic ray detected!");
}
}
या क्या अपवादों को संभालने का एक और शानदार तरीका है जो वास्तव में कभी नहीं हो सकता है?
दोनों जवाब महान हैं, लेकिन मैं RuntimeException विचार है, जो बहुत अच्छा है की वजह से इस को स्वीकार कर रहा हूँ। हो सकता है कि एक अवैध स्टाइल अपवाद यहां समझ में आएगा ... – Epaga
एक और संभावना है 'नया AssertionError फेंक दें ("यह नहीं हो सकता", पूर्व) ' –
@StephenC, क्या यह किसी भी तरह से रनटाइम से बेहतर है? – Line