首页 > 基础资料 博客日记

2022-07-29 第六组 Myy 学习笔记_Java_异常处理

2023-08-07 20:08:05基础资料围观196

本篇文章分享2022-07-29 第六组 Myy 学习笔记_Java_异常处理,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识

异常处理

  • 异常处理

  • 1.下标越界

  • 2.空指针

  • 3.类型转换异常

  • 4.数字格式化

  • 5.算数异常(数学异常)

编程界:

1.除数为0

2.输入输出流/IO流/没有关闭

3.停电

 

当一个程序抛出异常时,抛异常后面的语句不再执行,类似于return的功能,终止方法的执行。

👆try{}catch()处理异常:跳到异常处,正常抛异常,但是程序会继续运行

 

异常的继承体系结构

最顶级的Throwable:错误和异常

Error:正常情况下,不太可能出现的。绝大多数的Error都会导致程序处于一个非正常的状态下,很难恢复。Error是Throwable的子类,它在我们Java程序处理范围之外的。

Exception:Java语言中,将程序执行中发生的不正常情况称之为异常。

编译期异常:写代码的时候,抛异常。如果编译器不解决,会编译不通过,一直报错

运行期异常:RuntimeException,运行时会抛异常,平时没事。

自定义异常:

Java中异常机制,但是结合实际业务。

怎么自定义异常?

  • 所有异常必须是Throwable的子类(大材小用,没必要)

  • 如果要定义一个编译期异常,需要继承Exception类。

  • 如果要定义一个运行期异常,需要继承RuntimeException类。

一个语句块中,如果使用throw抛出一个编译期异常,就必须在方法的声明处,使用throws关键字来标记异常。

还有一种处理方式,就是直接try...catch

我们为什么要手动抛异常?-->配合全局异常处理机制,来解决问题。

throw语句是可以当作方法的返回值的。

在一个有返回值的方法中,如果有条件分支,一定要保证每种情况下都有返回值。

开发中,大部分情况下,我们一般定义的都是运行期异常。

错误码通常是我们自定义的规则。

异常链

一个异常被抛出之后会继续被调用这个被放飞的方法捕获或抛出,异常会扩散。

只要说解决异常、处理异常,就是try...catch。

 

如果一个方法没有捕获一个编译期异常,该方法必须使用throws来声明。

throws并不是真正解决了异常,只是把异常抛给了下一级调用者。

service层,干脏活累活的。

 

throws出现在什么地方?方法的声明处,抛出多个异常,用逗号隔开。

finally关键字

用来创建在try代码块后面执行的代码块

无论是否发生异常,finally代码块中的代码一定会执行,一般finally中的代码都是用来释放资源(--断开连接之类)

写try...catch...finally的场景比较多

执行顺序:finally永远在最后执行 如果有return -->try...finally...return按照这个顺序来

面试题:throws和throw的区别

历史遗留问题:方法的重写

重写的方法不能抛出比被重写方法更大的异常


文章来源:https://www.cnblogs.com/JNMyy/p/16533588.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云