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

return和finally执行顺序、运行时异常与一般异常异同、error和exception区别、Java异常处理机制原理与应用

文章目录

    • 1.try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
    • 2.运行时异常与一般异常有何异同?
    • 3.java 程序中的错误有三种类型分别是什么
    • 4.error和exception有什么区别?
    • 5.简单说说Java中的异常处理机制的简单原理和应用

1.try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

参考这篇博客写的很赞!

2.运行时异常与一般异常有何异同?

1、unchecked exceptions(运行时异常)都是RuntimeException类及其子类异常,就是我们在开发中测试功能时程序终止,控制台出现的异常,比如:

NullPointerException(空指针异常)、
IndexOutOfBoundsException(下标越界异常)
ClassCastException(类转换异常)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
IO操作的BufferOverflowException异常

2、 checked exceptions 非运行时异常 (编译异常):是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
通俗的话说就是在写代码时出现红线,需要try catch或者throws时出现的异常。

3.java 程序中的错误有三种类型分别是什么

错误,分为编码错误,运行错误,jvm内部错误

编码错误在eclipse等开发工具 中可以直观的看到,这种错误比较少见。
运行错误,又称运行时异常,这是代码逻辑错误导致的,发生这种错误时一定要静下心,从程序入口处寻找错误诱因。
jvm内部错误属于Java虚拟机内部错误,比较少见,发生这种错误时,建议重启计算机。

4.error和exception有什么区别?

image-20230221111344750

Error 和 Exception 都是Throwable的子类, 在java中只有Throwable类型的实例才可以被抛出或者捕获,它是异常处理机制的基本类型.

1,Exception 和 Error体现了java平台设计者对不同异常情况的分类, Exception是程序正常运行中,可以预料的意外情况,可以被捕获,进行相应的处理.
2.Error 是指正常情况下,不大可能出现的情况,绝大部分的Error 都会导致程序处于非正常的,不可恢复的状态, 不需要捕获, 常见的OutOfMemoryError 是Error的子类.
3.Exception 分为可检查异常(checked) 和 不可检查异常(unchecked).可检查异常在源代码里必须显式的进行捕获处理,这是编译期检查的一部分,不可检查异常是指运行时异常, 比如NullPointerException, ArrayIndexOutOfBoundsException之类, 通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求.

5.简单说说Java中的异常处理机制的简单原理和应用

异常是指java程序运行时(非编译)所发生的非正常情况或错误。Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,该对象中包含有异常的信息。

Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为java.lang.Throwable。

Throwable下面又派生了两个子类:

Error和Exception,Error表示应用程序本身无法克服和恢复的一种严重问题,程序只有奔溃了,

例如,说内存溢出和线程死锁等系统问题。

Exception表示程序还能够克服和恢复的问题,其中又分为系统异常和普通异常:

系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法

克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件挂掉,例如,数组脚本越

界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException)、类转换异常

(ClassCastException);

普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。
java为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须try…catch处理或用throws声明继续抛给上层调用方法处理,所以普通异常也称为checked异常,而系统异常可以处理也可以不处理,所以,编译器不强制用try…catch处理或用throws声明,所以系统异常也称为unchecked异常。

http://www.lryc.cn/news/14926.html

相关文章:

  • 我为什么放弃WinUI3
  • 2023年全国最新安全员精选真题及答案2
  • 计算机408考研先导课---C语言难点
  • K8S 部署 Redis-Cluster 集群
  • [oeasy]python0089_大型机的衰落_Dec小型机崛起_PDP_VAX网络
  • Apache Shiro与Spring Security对比
  • 23春招-mysql事务相关高频面试题
  • 天线理论知识1——基础概念介绍
  • 【云原生之Docker实战】使用Docker部署StackEdit在线Markdown编辑器
  • 特征工程:特征构造以及时间序列特征构造
  • 单master部署简要步骤
  • 【算法基础】(一)基础算法 --- 前缀和与差分
  • c++提高篇——stack容器
  • HTTP安全与HTTPS协议
  • 【c++】类和对象4—c++对象模型和this指针
  • 嵌入式Qt 开发一个视频播放器
  • 阿里巴巴内网 Spring Cloud Alibaba 强势来袭,开创微服务的新时代
  • 边界检测方法总结
  • Softing dataFEED OPC Suite Extended新版本支持从XML文件中读取生产数据
  • 央行罚单!金融机构被罚原因揭秘
  • js中var、let、const详解
  • 【数据库】MySQL概念知识语法-基础篇(DCL),真的很详细,一篇文章你就会了
  • Blender骨骼动画快速教程
  • 【C++算法】dfs深度优先搜索(下) ——【全面深度剖析+经典例题展示】
  • HIVE 基础(三)
  • redis-cluster集群搭建
  • 【C语言】可变参数列表va_list
  • CentOS7.6 MySQL8安装
  • 安装Tomcat的步骤?
  • Redis之分布式锁