Java零基础进阶篇之常用类-异常处理

本篇文章讲解的知识点主要围绕异常处理,废话不多说,只分享Java相关的干货!

主要内容

1. 异常的基本概念

2. 异常的分类

3. 异常的捕获和处理

4. 自定义异常

5. 方法覆盖与异常

异常的基本概念

什么是异常,在程序运行过程中出现的错误,称为异常

Java零基础进阶篇之常用类-异常处理_第1张图片
Java零基础进阶篇之常用类-异常处理_第2张图片

没有正确输出,抛出了被0 除异常

通过以上示例,我们看到 java 给我们提供了这样一个体系结构,当出现问题的时候,它会告诉我们,并且把错误的详细信息也告诉我们了,这就是异常的体系结构,这样我们的程序更健壮,我们可以把这个信息,再进行处理以下告诉用户。从上面大家还可以看到,java 异常都是类,在异常类中会携带一些信息给我们,我们可以通过这个类把信息取出来

异常的层次结构

Java零基础进阶篇之常用类-异常处理_第3张图片

异常的分类

异常主要分为:错误、一般性异常(受控异常)、运行期异常(非受控异常)

  1. 错误:如果应用程序出现了 Error,那么将无法恢复,只能重新启动应用程序,最典型的Error 的异常是:OutOfMemoryError

  2. 受控异常:出现了这种异常必须显示的处理,不显示处理java 程序将无法编译通过

  3. 非受控异常:此种异常可以不用显示的处理,例如被0 除异常,java 没有要求我们一定要处理

trycatch finally

异常的捕获和处理需要采用try 和catch 来处理,具体格式如下:

 

try {

 

}catch(OneException e) {

 

}catch(TwoException e) {

 

}finally {

 

}

  1. try 中包含了可能产生异常的代码
  2. try 后面是catch,catch 可以有一个或多个,catch 中是需要捕获的异常
  3. 当try 中的代码出现异常时,出现异常下面的代码不会执行,马上会跳转到相应的catch 语句块中,如果没有异常不会跳转到catch 中
  4. finally 表示,不管是出现异常,还是没有出现异常,finally 里的代码都执行,finally 和catch

可以分开使用,但finally 必须和try 一块使用,如下格式使用finally 也是正确的

try {


}finally {

}

【示例代码】

Java零基础进阶篇之常用类-异常处理_第4张图片

Java零基础进阶篇之常用类-异常处理_第5张图片

getMessage printStackTrace()

如何取得异常对象的具体信息,常用的方法主要有两种:

  1. 取得异常描述信息:getMessage()

  2. 取得异常的堆栈信息(比较适合于程序调试阶段):printStackTrace();

【代码示例】

Java零基础进阶篇之常用类-异常处理_第6张图片

Java零基础进阶篇之常用类-异常处理_第7张图片

【代码示例】

Java零基础进阶篇之常用类-异常处理_第8张图片

Java零基础进阶篇之常用类-异常处理_第9张图片

​​​​​​​受控异常

Java零基础进阶篇之常用类-异常处理_第10张图片

从上面输出可以看到,无法编译,它抛出了一个异常,这个异常叫做“受控异常”

FileNotFoundException,也就是说在调用的时候必须处理文件不能找到处理FileNotFoundException

Java零基础进阶篇之常用类-异常处理_第11张图片

Java零基础进阶篇之常用类-异常处理_第12张图片

​​​​​​​finally 关键字

finally 在任何情况下都会执行,通常在finally 里关闭资源

【示例代码】

Java零基础进阶篇之常用类-异常处理_第13张图片

Java零基础进阶篇之常用类-异常处理_第14张图片

采用finally 来释放资源

Java零基础进阶篇之常用类-异常处理_第15张图片

Java零基础进阶篇之常用类-异常处理_第16张图片

深入finally

【代码示例】

Java零基础进阶篇之常用类-异常处理_第17张图片

Java零基础进阶篇之常用类-异常处理_第18张图片

深入finally

Java零基础进阶篇之常用类-异常处理_第19张图片

深入finally

Java零基础进阶篇之常用类-异常处理_第20张图片

深入finally

Java零基础进阶篇之常用类-异常处理_第21张图片

Java零基础进阶篇之常用类-异常处理_第22张图片​​​​​​​

finalfinalize finally

​​​​​​​如何声明异常​​​​​​​

方法定义处采用 throws 声明异常,如果声明的异常为受控异常,那么调用方法必须处理此异常

【示例代码】,声明受控异常

Java零基础进阶篇之常用类-异常处理_第23张图片

Java零基础进阶篇之常用类-异常处理_第24张图片

【示例代码】,声明非受控异常

Java零基础进阶篇之常用类-异常处理_第25张图片

​​​​​​​如何手动抛出异常

Java零基础进阶篇之常用类-异常处理_第26张图片

Java零基础进阶篇之常用类-异常处理_第27张图片

采用异常来处理参数非法

Java零基础进阶篇之常用类-异常处理_第28张图片

Java零基础进阶篇之常用类-异常处理_第29张图片

throws 和throw 的区别?thorws 是声明异常,throw 是抛出异常进一步了解throw

Java零基础进阶篇之常用类-异常处理_第30张图片

Java零基础进阶篇之常用类-异常处理_第31张图片

​​​​​​​异常的捕获顺序

异常的捕获顺序应该是:从小到大

Java零基础进阶篇之常用类-异常处理_第32张图片

Java零基础进阶篇之常用类-异常处理_第33张图片

如何自定义异常

自定义异常通常继承于 Exception RuntimeException,到底继承那个应该看具体情况来定,关于异常再以后的项目中再继续讨论

【示例代码】,自定义受控异常

Java零基础进阶篇之常用类-异常处理_第34张图片

Java零基础进阶篇之常用类-异常处理_第35张图片

【示例代码】,自定义非受控异常

Java零基础进阶篇之常用类-异常处理_第36张图片

Java零基础进阶篇之常用类-异常处理_第37张图片

方法覆盖与异常

方法覆盖的条件:

  • 子类方法不能抛出比父类方法更多的异常,但可以抛出父类方法异常的子异常

Java零基础进阶篇之常用类-异常处理_第38张图片

Java零基础进阶篇之常用类-异常处理_第39张图片

Java零基础进阶篇之常用类-异常处理_第40张图片

总结

a) 异常的分类

b) 受控异常和非受控异常的区别

c) 异常的 5 个关键字 trycatchfinallythrowsthrow

d) 异常的捕获顺序,先捕获小的,再捕获大的

e) 方法覆盖和异常的关系

以上就是异常处理的知识点了,配套视频教程,正在学习Java的同学们一定要持续关注哦~~

Java零基础进阶视频教程

 

 

你可能感兴趣的:(Java学习者入门必备,Java纯干货,Java学习视频教程,java,编程语言,python,spring,android)