异常处理:
1,声明异常时,建议异常更为具体的异常,处理更具体。
2,对方声明几个异常,就对应几个catch块。
如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面
class 方法类名
{
方法 throws 异常1,异常2,···//声明异常抛出,交给调用者处理
{
方法体
}
}
class 主类名
{
new 方法
try{
//检查可能存在异常的代码
}catch(异常1){
//对异常1的情况进行处理
}catch(异常2){
//对异常2的情况进行处理
}catch(异常n){
//对异常n的情况进行处理
}
}
如何定义异常信息?
自定义异常类extends Exception
父类Exception中有getMessage()方法
即:父类中已经把异常信息的操作都完成了,所以子类只要在构造时,将异常信息传递给父类(通过super语句)即可。
子类 父类
class 自定义异常类 extends Exception
{
构造函数(String msg){
super(msg);
}
}
一般情况下,函数内出现异常,函数上需要声明,即throws抛出
异常体系有一个特点:因为异常类和异常对象都被抛出,他们具备可抛性,这个可抛性是Throwable这个体系中独有的特点。
只有这个体系中的类和对象才可被throw和throws操作
throw和throws的区别:
throws:使用在函数上,后跟异常类,可跟多个,隔开。
throw:使用在函数内,后跟异常对象。
自定义异常:当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作:
1,在内部try,catch处理
2,函数上声明抛出让调用者来处理
如何自定义?
class 自定义异常类 extends Exception
{
构造方法(String msg)
{
super(String msg);
}
}
异常有两种:
编译时异常:在编译时,如果没有处理,就会编译失败。(可被处理)
运行时异常:在编译时不检测,此类异常发生时,建议不处理,直接让程序停止。 |
|