javaSE_day12_异常处理

异常

Throwable

      |

Error错误  Exception异常

                        | 可以处理的

          1.运行时异常

              运行期 ,出现的问题。可处理 可 不处理。

              处理:后边的程序不会中断。

              RuntimeException类和 它的子类。

          2.非运行时异常(受检异常)

              编译期,提示的异常问题。必须处理。

              Exception类 和 部分子类。

----------------------------------------------

异常处理方式

javaSE_day12_异常处理_第1张图片

1.try-catch

try{

  会出现异常的代码;

}catch(异常类 对象){

  处理异常;

}

情况

  1.无异常出现,try执行,catch不执行

  2.异常类型匹配,try执行,catch执行

  3.异常类型不匹配,try执行,catch不执行。

-------------------------------------------

2.多重catch块

try{

  会出现异常的代码;

}catch(异常类 对象){

  处理异常;

}catch(异常类 对象){

}

优点:对不同类型的异常进行不同的处理。

顺序

  1.由子类 到 父类;

  2.由 普通 到 特殊。

---------------------------------------------

3.try-catch-finally

try{

}catch(){

}finally{

    一定会执行的代码,必须执行的代码;

  通常 资源释放

}

注:唯一一种 不执行 finally块的情况是,System.exit(0);退出 JVM

-----------------------------------------

final,finally,finalize 区别:

final:修饰符 终态

      类  不能被继承

      方法 不能被重写

      变量 不能被修改,常量

finally:

    异常处理,代码一定会执行的块。

finalize:

    方法,Object类的方法。在释放对象之前,垃圾回收此对象之前调用此方法用于资源释放。

-------------------------------------------

4.throws声明异常

  抛给了 调用者

  调用者的解决方式:

          1)throws

          2)try - cath 

---------------------------------------------

5.throw

自己抛异常,抛的 是 受检异常 ,必须 throws;运行时异常,不用 throws

----------------------------------------------

6.自定义异常类

继承 一个 系统异常类。

-------------------------------------

程序调试

  F5 :单步跳入(可以调试方法)

  F6 :单步跳过

步骤

  1.猜出错的代码的位置;

  2.加断点。

  3.单步运行;F5,F6

  4.观察 变量值的变化;

  5.发现问题;

  6.解决问题。

你可能感兴趣的:(javaSE_day12_异常处理)