当前位置: 首页 > article >正文

异常(11)

了解了try-catch-finally的执行流程后,那么我们就要来了解异常的处理流程了,理解程序是如何一步步处理异常的,话不多说,来看。

关于"调用栈"

方法之间是存在相互调用关系的,这种调用关系我们可以用"调用栈"来描述,在JVM中有一块内存空间称为“虚拟机栈"专门存储方法之间的调用关系,当代码中发现异常时,我们就可以使用e.printStackTrace();的方式查看出现异常代码的调用栈..

如果本

 

方法中没有合适的处理异常的方式,就会沿着调用栈向上传递

 如果一直向上传递都没有合适的方法处理异常,最终就会交给JVM处理,程序就会异常终止

(跟我们最开始未使用try catch时是一样的)

可以看到,程序已经异常终止了,没有执行到System.out.println("after try catch")这一行.

异常处理流程总结

程序先执行try中的代码

如果try中的代码出现异常,就会结束try中的代码,看和catch中的异常类是否匹配,

如果找到匹配的异常类型,就会执行catch中的代码.

如果没有找到匹配的异常类型,就会将异常向上传递到上层调用者..

无论是否找到匹配的异常类型,finally中的代码都会被执行到(在该方法结束之前执行).

如果上层调用者也没有处理的异常,就继续向上传递.

一直到main方法也没有合适的代码处理异常,就会交给JVM来处理,此时程序异常终止..

好了,今天分享就到这里,谢谢大家!!!

 


http://www.kler.cn/a/589766.html

相关文章:

  • Linux 日志与时间同步指南
  • 2024浙江大学计算机考研上机真题
  • 【蓝桥杯】省赛:神奇闹钟
  • 自然语言处理(2)—— NLP之百年风雨路
  • Android第三次面试(Java基础)
  • 蓝牙系统的核心组成解析
  • Secs/Gem第一讲 · 总结精华版(基于secs4net项目的ChatGpt介绍)
  • TypeScript类型兼容性 vs JavaScript动态类型:深入对比解析
  • redis分片集群如何解决高并发写问题的?
  • 【2025年3月最新】Cities_Skylines:城市天际线1全DLC解锁下载与教程
  • 对项目进行优化
  • STL——vector
  • openai 标准化协议 Structured Outputs 具体示例教程
  • [蓝桥杯 2024 国 A] 最长子段
  • 虚幻基础:GAS
  • 2.4 python网络编程
  • Matlab 单球机器人动力学与LQR控制研究
  • 2025年03月11日Github流行趋势
  • 深入理解C++编程:从内存管理到多态与算法实现
  • 国密系列加密技术及其在爬虫逆向中的应用研究