JVM 是如何处理异常的?
在一个方法中如果发生异常,这个方法会创建一个异常对象,并转交给JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。
创建异常对象并转交给JVM的过程称为抛出异常。可能有一系列的方法调用,最终才进入抛出异常的方法,这一系列方法调用的有序列表叫做调用栈。 JVM会顺着调用栈去查找看是否有可以处理异常的代码,如果有,则调用异常处理代码。当JVM发现可以处理异常的代码时,会把发生的异常传递给它。
如果JVM没有找到可以处理该异常的代码块,JVM就会将该异常转交给默认的异常处理器(默认处理器为JVM的一部分),默认异常处理器打印出异常信息并终止应用程序。
相关推荐HOT
如何快速入门怎样学习java
要快速入门学习Java,你可以按照以下步骤进行:设置开发环境:首先,在你的计算机上安装Java开发工具包(JavaDevelopmentKit,JDK)。你可以从Ora...详情>>
2023-06-05 16:19:00SpringBoot整合JDBCTemplat
Spring Boot 是一个快速构建基于 Spring 框架的应用程序的工具,而 JdbcTemplate 是 Spring 框架中用于执行 SQL 语句的类。下面是 Spring Boot ...详情>>
2023-03-20 19:29:44举例说明什么情况下会更倾向于使用抽象类而不是接口?
接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。下面有几个点可以帮助你回答这个问...详情>>
2022-11-07 14:34:20实例化创建对象有哪几种方式
1. new2. clone()3. 通过反射机制创建4. 序列化反序列化。反射示意代码:// Class.forName方法获取类,在调用类的newinstance()方法 Class cls ...详情>>
2022-11-07 14:33:23热门推荐
依赖注入实现原理?
沸如何快速入门怎样学习java
热SpringBoot整合JDBCTemplat
热一个bug的解决过程,让你明白阅读源码的重要性
新Redis的持久化机制有哪几种
高频面试题 - RabbitMQ如何防止重复消费问题
HashMap与ConcurrentHashMap的区别
线程和进程区别
JVM 是如何处理异常的?
如何实现跨域?说一下JSONP实现原理?
企业真实面试:父子类之间到底是怎么实例化的?
什么是 Spring Boot?Spring Boot 有哪些优点?
你了解过哪些同步器?请分别介绍下
新手java编程什么软件好