Java如何将处理完异常之后的程序能够从抛出异常的地点向下执行?

 更新时间:2019年04月10日 14:29:12   作者:yangyongUestc  
今天小编就为大家分享一篇关于Java如何将处理完异常之后的程序能够从抛出异常的地点向下执行?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

因为Java中的异常处理理论,支持的是终止模型,在这种模型中,抛出异常之后,程序无法返回到异常发生的地方向下继续执行。但是,如果我们现在想要Java实现类似恢复模型的行为,希望异常在处理之后继续往下进行执行,那么有什么解决的办法吗?

思路:

把try块放在while循环里,这样就能不断的进入try块,直到获得满意的结果结束。

下来看下面的程序:

package exceptions;
class MyException extends Exception {
}
public class ContinueException {
 private static int count;
 private static final int COUNTNUMBER = 1;
 public static void main(String[] args) {
 while (true) {
  try {
  if (++count == COUNTNUMBER) {
   throw new MyException();
  }
  System.out.println("Continue run after throw MyException");
  } catch (MyException e) {
  // TODO: handle exception
  System.out.println("Caught MyException");
  }finally {
  if(count == COUNTNUMBER + 1) break;
  }
 }
 }
}

程序执行结果为:

Caught MyException
Continue run after throw MyException

从结果我们可以看到,在异常处理完之后,程序继续向下执行了,打印出了结果。

这个程序给我们的思路就是:如果把try块放在循环里,并为抛出异常的语句之前建立一个条件语句,就有可能根据条件语句使下次执行的时候,跳过抛出异常的地方,向下执行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • java常见面试题及答案汇总

    java常见面试题及答案汇总

    本文提供Java面试题集锦,涵盖封装、继承、多态等核心概念,旨在帮助求职者全面复习,提升面试表现,从基础知识到实际应用,内容丰富,适合各类求职者,需要的朋友可以参考下
    2024-09-09
  • 详解Java的MyBatis框架中的缓存与缓存的使用改进

    详解Java的MyBatis框架中的缓存与缓存的使用改进

    很多人在使用MyBatis的缓存后经常会遇到MySQL分页查询的显示问题,针对于此,这里我们就来详解Java的MyBatis框架中的缓存与缓存的使用改进,首先来回顾一下MyBatis的缓存机制与执行:
    2016-06-06
  • Java 实战项目基于遗传算法学校排课系统的实现流程

    Java 实战项目基于遗传算法学校排课系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+Springboot+Maven+mybatis+Vue+Mysql实现一个基于遗传算法的学校排课系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Java数据封装树形结构代码实例

    Java数据封装树形结构代码实例

    这篇文章主要介绍了Java数据封装树形结构代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java Netty核心模块超详细梳理

    Java Netty核心模块超详细梳理

    Netty是一个java开源项目,是一个异步的、基于事件驱动的网络应用框架,用以开发高性能、高可用的网络io程序,这篇文章主要介绍了Netty核心模块
    2022-11-11
  • MyBatis框架搭建时依赖包引入异常的问题解决

    MyBatis框架搭建时依赖包引入异常的问题解决

    在使用IDEA环境搭建MyBatis框架时,可能会因为依赖包版本过低导致兼容性问题,本文就来介绍一下MyBatis框架搭建时依赖包引入异常的问题解决,感兴趣的可以来了解一下
    2024-10-10
  • Java 关系运算符详情及案例(下)

    Java 关系运算符详情及案例(下)

    这篇文章主要介绍了Java 关系运算符详情及案例的实现,主要续上篇文章,上一篇文章我们讲到“等于”运算符 (==)、“不等于”运算符(!=)、“大于”运算符(>) ,这篇文章继续给大家讲解相关知识,需要的朋友可以参考一下
    2021-12-12
  • Spring security中的授权

    Spring security中的授权

    本篇为大家带来Spring security的授权,首先要理解一些概念,有关于:权限、角色、安全上下文、访问控制表达式、方法级安全性、访问决策管理器,这篇文章主要介绍了Spring security中的授权,需要的朋友可以参考下
    2024-01-01
  • Java中Stream实现List排序的六个核心技巧总结

    Java中Stream实现List排序的六个核心技巧总结

    这篇文章主要介绍了Java中Stream实现List排序的六个核心技巧,分别是自然序排序、反向排序、空值安全处理、多字段组合排序、并行流加速、原地排序等,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • SpringAOP切点函数实现原理详解

    SpringAOP切点函数实现原理详解

    这篇文章主要介绍了SpringAOP切点函数实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论