文档章节

捕获异常,保障程序不报错正常执行

爱运动的小乌龟
 爱运动的小乌龟
发布于 2017/05/23 23:40
字数 360
阅读 3
收藏 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();
        }
        
    }

}
 

© 著作权归作者所有

共有 人打赏支持
爱运动的小乌龟
粉丝 2
博文 147
码字总数 41882
作品 0
朝阳
私信 提问
C++ 异常处理

异常处理介绍 在程序运行过程中,报错这个东西是在异常出现后用于防止继续程序的动作。这些异常,包括用户的,逻辑的,系统的都可以使用一个函数来识别。如果识别的程序不能够处理异常,那么...

oschina
2013/01/10
692
1
day20(异常处理及python其他)

异常 异常就是程序运行错误或者逻辑混乱。不能让用户看到直接代码的报错,需要给客户友好的提示。 异常一般是程序中无法完全避免,一般通过一定的手段,尽量减少异常的发生。提高代码的健壮性...

冰封心动
2017/11/18
0
0
小朋友学Python(19):异常

一、什么是异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 ...

翡翠森林Z
01/14
0
0
NDK开发---C++学习(七):异常

前言 C++的异常处理机制能够将异常检测与异常处理分离开来,当异常发生时,它能自动调用异常处理程序进行错误处理。把错误处理代码独立出来的异常处理机制增加了程序的清晰性和可维护性,使程...

浮生若梦zp
2017/12/01
0
0
Java的异常处理机制

参考文献:Java Platform Standard Edition 6 API 规范 Throwale Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 ...

吴七禁
2017/12/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

telegram_bot

new group -> 选择人 -> 填写群名 搜索BotFather -> start =========================== ou can control me by sending these commands: /newbot - create a new bot /mybots - edit your bo......

八戒八戒八戒
15分钟前
1
0
Spring boot中使用Jackson ObjectMapper注入

问题 本身spring boot已经集成了Jackson的库,我想自己在Controller中直接使用Spring默认的ObjectMapper,应该怎么做? RestController.java public class RestController { private fi...

亚林瓜子
21分钟前
3
0
老男孩 - python函数编程day2

mark

以谁为师
35分钟前
1
0
【58沈剑 架构师之路】缓存,究竟是淘汰,还是修改?

允许cache miss的场景,不管是memcache还是redis,当被缓存的内容变化时,是修改缓存,还是淘汰缓存?这是今天将要讨论的话题。 问:KV缓存都缓存了一些什么数据? 答: (1)朴素类型的数据...

张锦飞
37分钟前
1
0
Spring异常之Druid – unregister mbean error set JAVA_OPTS="-Ddruid.registerToSysProperty=true"

Spring异常之Druid – unregister mbean error 2017年04月19日 12:13:42 Dr.Zhu 阅读数:6688 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zt_fucker/arti...

linjin200
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部