1、 异常:异常就是程序在运行时出现的不正常情况。
异常由来:现实生活中存在各种问题,问题也是一个具体的事物,只要是事物就可以用java的类的形式进行描述,并封装成对象,其实就是java对不正常情况进行描述后的对象体现。
java中对于问题的划分:java中对问题的划分分为两种,一种是严重的问题,用Error类进行描述,一种是非严重的问题,用Exception类进行描述。对于Error,我们一般不编写针对性的代码进行处理,对于Exception则可以编写针对性的代码进行处理。
2、 异常的处理
java提供了特有的语句进行处理异常:
try
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;
}
finally
{
一定会执行的语句;
}
3、异常声明
class Demo
{
int div(int a,int b)throws Exception//在功能上通过throws的关键字生命了该功能可能会出问题
{
return a/b;
}
}
对异常声明,便于提高安全性,让调用者进行处理,不处理则编译失败。
对多异常的处理:
1、声明异常时,建议声明更为具体的异常,这样出的更为具体。
2、对方声明几个异常就应该有几个对应的catch块,不要定义多余的catch块。如果对个catch块中的异常类出细啊N极程冠希,父类异常的catch一定要放在最下面。
在进行catch块处理异常时,不要简单的定义一句 异常类对象.printStackTrance(),也不要简单的一条输出语句。
4、自定义异常
因为项目中有时候会出现特有的问题,而对于这些问题并未被java进行描述封装成对象,所以对这些特有的问题可以按照java中的对问题的封装的思想,将这些特有问题封装成异常类。当在函数内部出现了throw跑出异常对象,那么就必须要给出对应的处理动作,要么在内部try catch处理,要么在函数上声明让调用者处理。对于自定义异常的异常信息,因为在父类中已经把异常信息的操作完成了,所以子类在构造时,将异常信息传递个父类通过super()语句,那么就可以直接通过getMessage方法获取自定义的异常信息了。
自定义异常必须是继承Exception,因为异常体系都有一个特点,那就是他们的异常类和异常对象都具有可抛性,这个可抛性是Throwable这个体系的独有特点,只有这个体系中的类和对象才可以被throws和throw操作。throws使用在函数上,后面跟的异常类,可以跟多个,用逗号隔开。throw使用在函数内,后面跟的是异常对象。