文档章节

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

爱运动的小乌龟
 爱运动的小乌龟
发布于 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
朝阳
day20(异常处理及python其他)

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

冰封心动
2017/11/18
0
0
06-《深度拆解JVM》之JVM是如何处理异常的?

一、问题引入 今天我们来讨论下 Java 虚拟机的异常处理。众所周知,异常处理的两大组成要素是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。 抛出异常可分为显式和隐式两种...

飞鱼说编程
09/28
0
2
小朋友学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

没有更多内容

加载失败,请刷新页面

加载更多

Apache 流框架 Flink,Spark Streaming,Storm对比分析

1.Flink架构及特性分析 Flink是个相当早的项目,开始于2008年,但只在最近才得到注意。Flink是原生的流处理系统,提供high level的API。Flink也提供 API来像Spark一样进行批处理,但两者处理...

hblt-j
18分钟前
2
0
Dubbo/HSF在Service Mesh下的思考和方案

开头 Service Mesh这个“热”词是2016年9月被“造”出来,而今年2018年更是被称为service Mesh的关键之年,各家大公司都希望能在这个思潮下领先一步。今天我也分享阿里中间件在这方面的观点,...

Mr_zebra
19分钟前
0
0
用命令卸载Win8 IE9/IE10/IE11浏览器

首先打开,开始---运行-----框里输入cmd,进入命令提示框,将下面的命令复制粘贴到命令框里,然后按下Enter键执行。 执行完命令,必须重启电脑。 卸载IE9的命令: FORFILES /P %WINDIR%\ser...

JackFace
20分钟前
1
0
2018年产品设计协作领域最强黑马居然是它?

我发了一条朋友圈“感谢池子的秘密法宝,我今天终于吃上了女朋友做的晚饭了”并配上香香的绿豆汤,瞬间获得好几十条评论。 “同为设计师,为啥你会这么早回家?” “快扶我起来,我还能画两个...

mo311
21分钟前
0
0
linux安装jdk1.8(rpm方式)

1:下载JDK的URL地址,例如:http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm。这个地址可以去Orcale的官网找到。通过w......

苏牧影子
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部