捕获异常,保障程序不报错正常执行
捕获异常,保障程序不报错正常执行
爱运动的小乌龟 发表于5个月前
捕获异常,保障程序不报错正常执行
  • 发表于 5个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

最近由于经常在solr里面查询并将查询结果导出到文档里面,而我们的solr每个分片只有一个备份,就出现一个问题,当正在查询的数据在某个分片上时,而这个分片此时有处于no live状态,我们的查询程序就会报异常(no live),导致程序停止查询,然而我们并不想因为这个异常导致我们的查询程序停止,于是我就采用了下面这个办法,使用try-catch对抛出的异常进行捕获,捕获异常后,在catch中我们只抛出一个提示信息,在提示信息后面紧接着休眠一段时间,然后再次调用这个查询服务,就能保障查询不会停止了。

根据介绍的原理,下面给出一个简单测试例子:

package TestLog;

import java.util.ArrayList;

public class TestTryCatch {
    public static void main(String[] args) {
        test();
    }
    
    public static void test(){
        try {
            
            ArrayList<String> lists = new ArrayList<String>();
        for(int i=0;i<5;i++){
            String str="test+"+i;
            lists.add(str);
        }
        
        for (int i = 0; i <20; i++) {
            System.out.println(lists.get(i));
        }
        } catch (Exception e) {
            // TODO: handle exception
            //正常情况下,到这里应该报空指针异常,终止程序的执行,但是了保障程序能正常执行,这里重新调用我们的程序。回到程序继续执行。
            System.out.println("异常暂不抛出,继续执行。");
            test();
        }
        
    }

}
 

共有 人打赏支持
粉丝 0
博文 76
码字总数 26269
×
爱运动的小乌龟
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: