我有这个代码:
try {
do_stuff();
return do_more_stuff();
} catch (UnsupportedEncodingException e) {
throw CustomException.programmer_error(e);
} catch (ProtocolException e) {
throw CustomException.programmer_error(e);
} catch (MalformedURLException e) {
throw CustomException.programmer_error(e);
} catch (SocketTimeoutException e) {
throw new CustomException(e);
} catch (IOException e) {
throw CustomException.unexpected_error(e);
}
我现在需要把所有这些catch块都放在另一个类似的功能中。在这里避免重复的最好办法是什么?
请注意,两个try块中的代码并不是很相似。
另外我也不能真的把一堆抓住更高一些。
注意,我宁愿避免:
try {
do_stuff();
return do_more_stuff();
} catch (Exception e) {
handle_exception_via_rtti(e);
}