文档章节

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

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

}
 

© 著作权归作者所有

共有 人打赏支持
爱运动的小乌龟
粉丝 1
博文 126
码字总数 39742
作品 0
朝阳
day20(异常处理及python其他)

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

冰封心动 ⋅ 2017/11/18 ⋅ 0

小朋友学Python(19):异常

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

翡翠森林Z ⋅ 01/14 ⋅ 0

NDK开发---C++学习(七):异常

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

浮生若梦zp ⋅ 2017/12/01 ⋅ 0

Java的异常处理机制

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

吴七禁 ⋅ 2017/12/04 ⋅ 0

异常处理

抛出异常 异常处理使得程序可以处理非预期的情景,并且能够继续正常的操作 在java中,运行时错误会作为异常抛出。异常就是一种对象,表示阻止正常进行程序执行的错误或者情况。 异常是从方法...

承思 ⋅ 2017/10/11 ⋅ 0

Node系列——Node系列中异常捕获的一个重要思考

无论是通过对象的事件捕获到全局异常,还是通过子域对象的事件捕获到了子域异常,在NodeJS官方文档里都强烈建议处理完异常后立即重启程序,而不是让程序继续运行。按照官方文档的说法,发生异...

龙马行空 ⋅ 2015/08/28 ⋅ 0

学习笔记(11月08日)--异常

四周三次课(11月8日) 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错...

wanyang_wanyang ⋅ 2017/11/08 ⋅ 0

day20异常的一些操作及解释

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

AAA年华 ⋅ 2017/11/17 ⋅ 0

Python入门(十) 异常处理

在我们的程序开发过程中,需要区分正常过程与异常(非正常)的情况。为了能够处理异常事件,c语言编程中要求使用条件语句进行判断,尤其是我们每调用一个函数,都需要对其返回值进行检查,这...

kaedehao ⋅ 2015/08/16 ⋅ 0

CrazyWing:Python自动化运维开发实战 十七、Python异常

导语: 在写代码的时候,经常会遇到异常。python提供了两个功能来处理程序在运行中出现的异常和错误,可以使用该功能来调试python程序。 异常处理 断言(Assertions) 常用异常: Exception 它可...

CrazyWing ⋅ 2017/12/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 40分钟前 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 48分钟前 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部