程序出错,报错不停止运行

最近公司让我做接口调用,需要循环调用接口,希望接口调用一次失败不要影响后面的运行。

在网上查阅资料后发现。

当程序有异常,需要继续运行而不终止,使用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;
            }
        }
    }
}

你可能感兴趣的:(程序出错,报错不停止运行)