java exception 二次抛出_java – 如何在scheduleWithFixedDelay抛出异常时重新启动计划?...
你可能应该在一个while(true)循环中包含try块,因为如果第一次运行没有抛出异常,你将退出你的方法,如果第二次调用抛出一个,你将无法捕获它.
我还会在自己的线程中运行递归调用,以避免在事情变坏时出现StackOverFlow错误的风险.
所以它看起来像这样:
private void startMemoryUpdateSchedule(final ScheduledExecutorService service) {
final ScheduledFuture> future = service.scheduleWithFixedDelay(new MemoryUpdateThread(), 1, UPDATE_MEMORY_SCHEDULE, TimeUnit.MINUTES);
Runnable watchdog = new Runnable() {
@Override
public void run() {
while (true) {
try {
future.get();
} catch (ExecutionException e) {
//handle it
startMemoryUpdateSchedule(service);
return;
} catch (InterruptedException e) {
//handle it
return;
}
}
}
};
new Thread(watchdog).start();
}
java exception 二次抛出_java – 如何在scheduleWithFixedDelay抛出异常时重新启动计划?...相关推荐
- java 捕捉的异常抛出_Java异常抛出和捕获
Java中把非正常情况分为两种,异常(Exception)和错误(Error). 异常.png Error:一般是指与虚拟机相关的问题(虚拟机错误.线程死锁等),这种错误无法回复或不可能捕获 Exce ...
- java声明异常必须抛出吗_简述java中抛出异常的两种方式
java编程中经常遇到异常,这时就需要利用java中的异常抛出机制,在java中提供了两种抛出异常的方法:try{} catch() {}和throw. 一.抛出异常的两种方式 (1) 首先我们来看 ...
- java中主函数抛出的异常怎么解决_java – 从递归函数中抛出异常
我为一个更大的应用程序构建了一个库/模块,它从函数中抛出异常.如果找不到文件或文件包含错误格式,则抛出Exeption. 该方法看起来像: Shape parse(String path) throw ...
- java 异常捕获抛出_JAVA异常处理捕获与抛出原理解析
JAVA 异常 当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常.异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常. 这个时候,JAVA 就提供了优秀的处理方法:异常处理 ...
- Java对异常处理或抛出之后,后面代码会不会再执行?
一.测试代码: public class TestException {public static void main(String[] args) throws Exception {int[] i ...
- java 手动抛异常_Java 异常处理 之 手动抛出异常
一.手动抛出异常 throw 在编写程序时,我们必须要考虑程序出现问题的情况.比如,在定义方法时,方法需要接受参数.那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法 ...
- 如何合理使用java异常_如何更合理的利用Java中的异常抛出?
得编程语言中最让人不解的部分就是它能够创建错误.当时对Java语言中的throw关键字的第一反应就是"啊,这也太傻了,为什么我们想要引发一个错误(error)?"我觉得错误是我的敌 ...
- java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...
[情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...
- java.lang.SecurityException: Prohibited package name: java.com.xx异常抛出
使用idea创建了一个新的工程,然后建了一个名为"java"的文件夹,当启动里面的主函数时,出现如下异常: 根据异常信息,定位到java.lang.ClassLoader.preD ...
最新文章
- Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found (required by /usr/anaconda3/bin/)
- shell、javascript、python、tcl 等常用脚本语言
- @FunctionalInterface
- matplotlib绘制混淆矩阵_混淆矩阵及其可视化
- Linux大文件格式,linux – 用于打印大文件的命令,按大小以人类可读的格式排序...
- 操作系统 --- [笔记]功能、组成
- 云开发的数据库权限机制解读丨云开发101
- Linux Shell编程之输入输出重定向
- ubuntu16.04源码安装python3.7
- linux将程序锁死,Linux死锁现象及分析方法(转)
- html 5新增技术,HTML5新增标签
- WindowsServerAppFabric1.1安装失败、配置失败、1603错误码解决方案
- 姿态估计4-06:voxelpose(多视角3D人体姿态估算)-源码无死角解析(1)-训练代码总览
- DXP PCB板的形状的改变
- 10年软件测试工程师 常用八大测试用例设计方法
- 高德地图获取坐标距离_高德地图计算两坐标之间距离
- 高中会考计算机都考啥,高中会考都有哪些科目
- ES7241D低功耗音频ADC芯片##小爱音响
- Arch Linux fcitx 新世纪五笔配置
- js 只准输入数字_js 限制input只能输入数字
热门文章
- k8s mysql重启_kubernetes Pod 应用自动恢复(重启策略 + 健康检查)简介
- java 程序执行后 强制gc_【GC系列】JVM的常用GC参数及GC日志解析
- java cos函数_【Java案例】余弦函数
- freopen()的重定向打开或者关闭
- python编程内置函数使用方法_Python内置函数 next的具体使用方法
- flash咏鹅课件_咏鹅flash动画课件下载
- ExcelPro《EXCEL图表之道-如…
- 10tb服务器硬盘 选购,2017最靠谱大容量机械硬盘选购指南(基于Backblaze硬盘寿命可靠性报告)...
- 【图像超分辨率】Understanding Deformable Alignment in Video Super-Resolution
- 计算机控制技术与自动化的关系,计算机控制技术东南大学自动化学院.ppt