1.当在函数内部出现了throw抛出异常对象,那么必须要给对应的处理动作
要么在内部try catch出来,要么在函数上声明,让调用者处理
一般情况下函数内出现异常,函数上需要声明
2.如何定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常信息通过super语句传递给父类,就可以直接通过getMessage方法获取自定义的异常信息。
3.注意:
必须是自定义类继承Exceptio继承Exception原因:
异常体系有一个特点:异常类和异常对象都被抛出。
因为他们都具备可抛性,这个可抛性是Throwable这个体系中独有特点。
只有这个体系中的类和对象才能被Throws和throw操作。
4.throws和throw的区别
throws使用在函数上
throw使用在函数内
throws后面跟的是异常类,可以跟多个,用逗号隔开
throw后跟的是异常对象
自定义异常
需求:在本程序中,对于除数是-1,也视为是错误的是无法进行运算的
那么就需要对这个问题进行自定义描述
class FuShuException extends Exception{
private int value;
FuShuException(String msg,int value){
super(msg);
this.value=value;
}
public int getValue(){
return value;
}
}
class Demo{
int div(int a,int b)throws FuShuException{
if(b<0)
throw new FuShuException("除数是负数啦",b);
return a/b;
}
}
public class ExceptionDemo {
public static void main(String[] args){
Demo d=new Demo();
try{
int x=d.div(4,-1);
System.out.println("x="+x);
}
catch(FuShuException e){
System.out.println(e.toString());
System.out.println("错误的值是"+e.getValue());
}
System.out.println("over");
}
}
FuShuException: 除数是负数啦
错误的值是-1
over