最近公司让我做接口调用,需要循环调用接口,希望接口调用一次失败不要影响后面的运行。
在网上查阅资料后发现。
当程序有异常,需要继续运行而不终止,使用try/catch。
在catch中用try包裹throw new Exception();若有需要在catch中进行处理,只要catch没有异常,则不会停止运行。
伪码
for(int j=0 ; j<10; j++){
URL url = new URL(surl);
BufferedReader reader = null;
try{
reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
} catch (IOException e){
logger.error("调用接口失败", e);
try{
throw new IOException();
} catch (IOException io){
boolean flag = true;
//若出现调用异常 重新调用三次
for (int i = 0; i < 3; i++) {
try {
reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
} catch (IOException ex) {
logger.error("重新调用抛出异常",ex);
Thread.sleep(10);
continue;
}
flag = false;
break;
}
if(flag){
continue;
}
}
}
}