在每次尝试捕获不同类型的异常后,我有这么多catch
块。
有没有办法可以在一个块中处理所有这些异常,而不是为每个异常添加一个新块?
... } catch (UnknownHostException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} catch (NullPointerException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} catch (ClientProtocolException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} catch (IllegalArgumentException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} catch (URISyntaxException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} catch (MalformedURLException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} catch (IOException e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
} finally{…}
答案 0 :(得分:1)
这是可能的,因为Java 7
try {
...
} catch( UnknownHostException | NullPointerException | ClientProtocolException ex ) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
}
但你可以使用
try{
}
catch (Exception e) {
Log.e(LOG_TAG_EXCEPTION, e.getMessage());
}
更多信息http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html
答案 1 :(得分:1)
Try
{
} catch ( Exception e )
{
// catch all
}
答案 2 :(得分:0)
如果您只是记录异常
catch (Exception e) { Log.e(LOG_TAG_EXCEPTION, e.getMessage()); }
非常好。但是如果你想对某个异常作出反应,就必须像以前一样捕获特定的异常。