我有类似的东西.
void func() {
try {
//socket disconnects in middle of ..parsing packet..
} catch(Exception ex) {
if(!ex.getMessage().toString().equals("timeout") || !ex.getMessage().toString().equals("Connection reset")) {
debug("Exception (run): " + ex.getMessage());
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么当我得到连接重置异常或超时异常时,它仍然在条件内.我尝试没有toString,没有运气.
从catch中排除异常类型的最佳方法是什么?你可能不知道会有什么类型的异常进入,因此你的一个catch可能是泛型catch(Exception ex),你可以轻松检查该异常的类型,如果它与你要排除的异常匹配,那么抛出它备份,但我猜这是非常低效的.有没有更好的方法呢?