2022.07.29 第七小组 王茜 学习笔记

一:

异常处理:
  1.下标越界
  2.空指针
  3.类型转换异常
 4.数字格式化
  5.算术异常(数学异常)
 
  编程界:
  1.除数为0
  2.IO流,没有关闭
  3.停电
 
  当一个程序抛出异常时,抛异常后面的语句不再执行,类似于return的功能,
  终止方法的执行。

二:
 异常的继承体系结构:
   最顶级的Throwable:错误,异常
   Error:正常情况下,不太可能出现的。绝大多数Error都会导致程序处于非正常的状态下,很难恢复。外力的作用下,不考虑。

             Error是Throwable的子类。它是在Java程序处理范围之外的。

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

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

  运行期异常:RuntimeException,运行时会抛异常,平时没事***
 
   自定义异常:
       Java中异常机制,但是结合实际业务。

        怎么自定义异常?

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

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

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

三:

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

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

throw语句是可以当做方法的返回值的。
 
  在一个有返回值的方法中,如果有条件分支,一定要保证每种情况下都有返回值,哪怕是抛异常。
 
  开发中,大部分情况下使用的都是运行期异常!!!

四:

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

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

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

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

五:

finally关键字

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

  无论是否发生异常,finally代码块中的代码一定会执行。一般finally中的代码都是用来释放资源。

   try...catch...finally:

六:

catch可以写多个,有顺序问题。

 先写小的,再写大的

 

posted @ 2022-07-29 19:03  无聊的wx  阅读(23)  评论(1)    收藏  举报