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

文章详细讨论了Java中的异常处理机制,包括try-catch-finally结构中return语句与finally块的执行顺序,运行时异常与编译异常的异同,Java错误的三种类型,Error与Exception的区别,以及Java异常处理的原理和应用。强调了checked异常在编译期间的处理要求,而unchecked异常通常与逻辑错误相关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊佩萁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值