JAVA11

来源:互联网 发布:网络kvm 编辑:程序博客网 时间:2024/05/22 17:23
异常

1异常处理的概念

         ◆异常: 程序运行时发生的错误称为异常。

                  Eg:除数为0

                     文件不存在

                     数组下标越界

                     空指针…..

 

         ◆异常处理:处理这些异常就称为异常处理。

 

2异常处理的原理

         Java中异常处理原理如下:

◆在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。

◆生成的异常对象将传递给Java运行时系统(JRE),这一异常的产生和提交过程称为“抛出(throw)异常”。

◆当JRE得到一个异常对象时,它首先寻找处理此异常的代码。如果找到能够处理这种类型异常的代码方法后,JRE把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。

◆如果JRE找不到可以捕获异常的方法,则JRE将终止,相应的Java程序也将退出。

 

 

★Error类对象由Java虚拟机生成并抛出;一般不能由应用程序直接处理,必须交由操作系统处理。(硬件原因造成的运行错误)

★Exception类对象由应用程序处理或抛出。Exception分为两类:

◆运行时异常

 RuntimeException的子类异常。Java编译器允许程序不对它们做出处理。

◆非运行时异常

 除了运行时异常之外的其他由Exception继承来的异常类。Java编译器要求程序必须捕获或声明这种异常,否则编译就报错。

 

3掌握异常处理的方法

Java 中可用于处理异常的两种方式:

◆自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。

◆回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。

 

案例一:

 自处理异常

案例二:

回避异常(抛出异常)

案例三:

回避异常(抛出异常)

4 try,catch,finally,throws,throw五个关键字

所有的异常都是由五个关键字 try、catch、throw、throws 和 finally 来处理。

 

         ★try…catch    最基本的异常处理方式

                  ◆语法:

                  try{

                          可能发生异常的代码块;

}catch(Exception e){

         异常处理代码块;

}

◆说明:

         如果try中的代码块没有发生异常,则不会执行catch中的一次处理代码。

         如果try中的代码发生异常,则会执行catch中的代码块。

 

★try…catch…finally如果无论发生什么情况,有些代码必须执行,则可以放到finally块中(eg:关闭资源、事务处理)

◆语法:

                  try{

                          可能发生异常的代码块;

}catch(Exception e){

         异常处理代码块;

}finally{

         必须执行的代码块;

}

◆说明:

         如果try中的代码块没有发生异常,则不会执行catch中的一次处理代码,但是会执行finally中的代码块

         如果try中的代码发生异常,则会执行catch中的代码块,catch中代码块执行完成后还会执行finally中的代码块。

 

 

 

捕获多个异常

注意:使用多重 catch语句时,异常子类一定要位于异常父类之前

★throws 处理异常(抛出异常)

 

★throw 抛出自定义异常

 

5掌握自定义异常

            Java API中提供了很多的异常类,但是这些内置的异常并不能满足所有的需求,有事需要用户根据自己的业务逻辑自己定义异常。

        

 

 

补充

         Final、finally、finalize的区别

Final修饰类:类不可被继承

Final修饰变量:变量值不可变

Final修饰方法:方法不可被重写

Finally用于捕获异常  try catch finally语句

Finalize用于处理垃圾回收

 Throw  throws区别

         


原创粉丝点击