java入门学习(13)—异常处理

时间:2022-08-13 15:31:04

java入门学习(13)—异常处理什么是异常?

异常是相对主观的东西,只要是出现与业务不契合的情况,我们都叫异常。

java入门学习(13)—异常处理为什么使用异常处理?好处是什么?

1、在编写程序是有些错误情况是我们能够预先估计的,这样可以利用错误代码进行处理,但是还有一些情况是我们没有办法预先知晓的,所以遇到错误时会抛出异常,这样我们就需要引进异常处理机制进行处理。

2、目的是让我们所编写的程序健壮性更好,能对尽可能多的情况进行处理。

java入门学习(13)—异常处理异常处理思路?

1、如下:先用try进行试运行,如果能正常运行就是OK的,如果不能就需要用后面的catch来扑捉异常并进行异常处理。

     try{//尝试进行业务代码处理,如果正常则OK}

    catch(异常1 e1){对出现的异常进行处理}

后面可以有多个catch块,扑捉多个异常,并进行处理。

2、异常的执行流程:

     a、如果在执行try的时候出现异常,那么系统会自动产生一个异常对象。

     b、异常对象会自动和ccatch后面的异常比较,如果利用instanceOf比较之后是其子类,或者本身就会返回true,则系统就会把异常对象相应的传给catch块,并执行相应的catch块里面的代码。

注意:

1、对于一个异常,最多只有一个catch块能扑捉到该异常。

2、扑捉多个异常的时候,应该先扑捉小的,再扑捉大的,也就是先子类,后父类。

3、可用catch(异常1|异常2|异常3|异常4|......ex)来一次扑捉多个异常,不过注意其中的ex默认有final修饰。

java入门学习(13)—异常处理完整的异常处理方法?

try 

{

//正常的业务代码

}

catch(异常1 e1)//可以有0到N个。

{

//异常处理代码

}

finally //有0到1个其无论异常是否执行都会被执行,即使是遇到return也会被执行,保证打开的资源一定能关闭

{

//用于回收打开的资源

}

注意:

1、try块不能独立存在,必须是catch或者finally必须两者得其一,但是JDK1.7以后可以把需要回收的资源放置在try后面的圆括号里,不需要再写finally块。但是能被自动关闭的资源必须实现closeable或者Autocloseable接口。

2、异常处理也是可以嵌套的。

3、java的垃圾回收机制不会回收任何的物理资源,垃圾回收机制只能回收堆内中对象所占用的内存。所以要用finally来关闭相应资源。

4、一般会在最后放一个Exception异常,捕捉那些没有考虑到的异常。

 java入门学习(13)—异常处理异常分类?

1、checked异常:普通的异常,不是runtimeException子类的异常都是checked异常。没有完善的错误处理代码,其不会得到执行的机会。

2、runtime异常:runtimeException的子类异常都是runtime异常,也就是除非你直接继承了runtime异常,不然都是checked异常。

java入门学习(13)—异常处理checked异常:

        1、一种编译器强制检查的check机制。也就是要求程序员要么处理异常,要么声明抛出该异常。

2、抛出异常用:throws 加上“异常名”,表明我已近注意到这个异常,但是我并未做处理,先放着不管。

3、checked异常可以更好的保证程序员一定会对程序进行处理,但是也给编程带来了繁琐。其一定要么用throws声明抛出,要么就用catch进行异常捕捉。

java入门学习(13)—异常处理throws和throw的区别?

1、throws只能在方法签名中使用,throws后可以跟多个异常类名,但是需要用逗号隔开。

2、throw是一个普通语句,后面跟一个异常实例,仅仅是一个。


java入门学习(13)—异常处理抛出异常的两种情况?

1、程序不能执行完成,由系统自动抛出异常。

2、程序出现与业务规则不符的情况,由程序员创建异常对象,并由throws抛出。这样的异常java同样会强制检查,要求要么声明抛出,要么显示捕捉。