你可能应该在一个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抛出异常时重新启动计划?...相关推荐

  1. java 捕捉的异常抛出_Java异常抛出和捕获

    Java中把非正常情况分为两种,异常(Exception)和错误(Error). 异常.png Error:一般是指与虚拟机相关的问题(虚拟机错误.线程死锁等),这种错误无法回复或不可能捕获 Exce ...

  2. java声明异常必须抛出吗_简述java中抛出异常的两种方式

    java编程中经常遇到异常,这时就需要利用java中的异常抛出机制,在java中提供了两种抛出异常的方法:try{}  catch() {}和throw. 一.抛出异常的两种方式 (1) 首先我们来看 ...

  3. java中主函数抛出的异常怎么解决_java – 从递归函数中抛出异常

    我为一个更大的应用程序构建了一个库/模块,它从函数中抛出异常.如果找不到文件或文件包含错误格式,则抛出Exeption. 该方法看起来像: Shape parse(String path) throw ...

  4. java 异常捕获抛出_JAVA异常处理捕获与抛出原理解析

    JAVA 异常 当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常.异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常. 这个时候,JAVA 就提供了优秀的处理方法:异常处理 ...

  5. Java对异常处理或抛出之后,后面代码会不会再执行?

    一.测试代码: public class TestException {public static void main(String[] args) throws Exception {int[] i ...

  6. java 手动抛异常_Java 异常处理 之 手动抛出异常

    一.手动抛出异常 throw 在编写程序时,我们必须要考虑程序出现问题的情况.比如,在定义方法时,方法需要接受参数.那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法 ...

  7. 如何合理使用java异常_如何更合理的利用Java中的异常抛出?

    得编程语言中最让人不解的部分就是它能够创建错误.当时对Java语言中的throw关键字的第一反应就是"啊,这也太傻了,为什么我们想要引发一个错误(error)?"我觉得错误是我的敌 ...

  8. java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...

    [情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...

  9. java.lang.SecurityException: Prohibited package name: java.com.xx异常抛出

    使用idea创建了一个新的工程,然后建了一个名为"java"的文件夹,当启动里面的主函数时,出现如下异常: 根据异常信息,定位到java.lang.ClassLoader.preD ...

最新文章

  1. Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found (required by /usr/anaconda3/bin/)
  2. shell、javascript、python、tcl 等常用脚本语言
  3. @FunctionalInterface
  4. matplotlib绘制混淆矩阵_混淆矩阵及其可视化
  5. Linux大文件格式,linux – 用于打印大文件的命令,按大小以人类可读的格式排序...
  6. 操作系统 --- [笔记]功能、组成
  7. 云开发的数据库权限机制解读丨云开发101
  8. Linux Shell编程之输入输出重定向
  9. ubuntu16.04源码安装python3.7
  10. linux将程序锁死,Linux死锁现象及分析方法(转)
  11. html 5新增技术,HTML5新增标签
  12. WindowsServerAppFabric1.1安装失败、配置失败、1603错误码解决方案
  13. 姿态估计4-06:voxelpose(多视角3D人体姿态估算)-源码无死角解析(1)-训练代码总览
  14. DXP PCB板的形状的改变
  15. 10年软件测试工程师 常用八大测试用例设计方法
  16. 高德地图获取坐标距离_高德地图计算两坐标之间距离
  17. 高中会考计算机都考啥,高中会考都有哪些科目
  18. ES7241D低功耗音频ADC芯片##小爱音响
  19. Arch Linux fcitx 新世纪五笔配置
  20. js 只准输入数字_js 限制input只能输入数字

热门文章

  1. k8s mysql重启_kubernetes Pod 应用自动恢复(重启策略 + 健康检查)简介
  2. java 程序执行后 强制gc_【GC系列】JVM的常用GC参数及GC日志解析
  3. java cos函数_【Java案例】余弦函数
  4. freopen()的重定向打开或者关闭
  5. python编程内置函数使用方法_Python内置函数 next的具体使用方法
  6. flash咏鹅课件_咏鹅flash动画课件下载
  7. ExcelPro《EXCEL图表之道-如…
  8. 10tb服务器硬盘 选购,2017最靠谱大容量机械硬盘选购指南(基于Backblaze硬盘寿命可靠性报告)...
  9. 【图像超分辨率】Understanding Deformable Alignment in Video Super-Resolution
  10. 计算机控制技术与自动化的关系,计算机控制技术东南大学自动化学院.ppt