java基础复习 异常

异常

异常

异常就是在程序运行时出现的不正常现象,也就是程序运行时出现的问题。问题也是现实生活中一个具体的事物,我们通过java类来对其进行描述,并封装成对象。就是java中的异常类。

出现的问题一种是不可处理的,一种是可处理的。对于不可处理的,通过Error类进行描述。开发中一般不编写针对性的代码对其进行处理。对于可处理的,用Exception来描述,在开发中可以使用针对性的处理方式,进行处理。

Error和Exception有共性的内容,比如不正常信息,引发原因等。就形成了异常体系。

java.lang.Object  > java.lang.Throwable >Error ,Exception

异常捕捉 trychatch

       异常调用printStackTrace(),将向输出流(默认的是控制台)打印异常信息。信息包括异常名称,异常信息,异常出现的位置。jvm默认的的异常处理机制,就是在调用printStackTrace方法,向控制台输出异常的堆栈跟踪信息。

try

{

       需要被检测的代码

}

catch(异常类 变量)

{

       处理异常的代码

}

finally

{

       一定会执行的语句

}

对捕获到的异常进行常见方法操作:String   getMessage() 获取异常信息

 

异常声明throws

       对不可处理的异常,在函数小括号后大括号前,用throws关键字对程序有可能出现的问题进行标识。方便调用者处理。

多异常处理

       声明异常时,要尽可能的声明的更具体些,这样处理的就可以更具体。

       程序中有多个异常时,声明几个异常,就应该有几个catch块,不要定义多余的catch块,如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。

       建议在进行catch处理时,catch中一定要定义具体处理方式。不要简单定义一句e.printStackTrace()。

自定义异常

       因为项目中会出现特有的,未被java封装的成异常类的问题,我们可以对这些问题按照java封装问题的思想,对其进行封装。

       当在函数内部出现了throw抛出异常对象,那么就必须要给出对应的处理动作。要么在内部捕捉,要么在函数上声明,让调用者处理。一般情况下。函数内部出现异常,函数上需要声明

       如何定义异常信息呢?因为父类已经把异常信息的操作都完成了,所以子类只需要在构造时,将异常信息通过super语句传递给父类。就可以直接使用getMessage方法获取自定义的异常信息。

       自定义异常必须是自定义类继承Exception。因为异常体系有一个特点,异常类和异常对象都会可以被抛出。即它们都具有可抛性,可抛性是Throwable这个体系中独有的特点。只有这个体系中的类和对象才可以被throws和throw操作。

throw和throws的区别

1、throw使用在函数内,throws使用在函数上

2、throws后面跟的是异常类,可以跟多个,用逗号隔开。throw后跟的是异常对象。

 

RuntimeException

Exception中的RuntimeException 是运行时异常,如果在函数内抛出该异常,函数上可以不用声明,编译可以通过。如果在函数上声明了该异常,调用者可以不用进行处理,编译可以通过。程序执行RuntimeException后,会停止。自定义异常时,如果该异常的发生使程序无法继续进行运算,就让自定义异常继承RuntimeException。

       异常可以分为编译时被检测的异常和运行时异常。运行时异常是RuntimeException及其子类。

异常finally

       常用于关流,解锁。

异常的格式

       1try{}catch(){}

       2try{}catch(){}catch(){}

       2try{}catch(){}finally{}

       3try{}finally{}

异常覆盖时的特点

       子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类,或者不抛。

异常总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值