/*
由于项目中会涌现独有的问题
而这些问题并未被java所描写并封装对象
所以对这些独有的问题可以依照java的对问题封装的思想
将独有的问题,进行自定义的异常封装。即自定义异常
当在函数内部涌现了throw抛出异常对象,那末就必需给出对应的处置动作。
要末在内部try catch处置。要末在函数上声明让调用者处置。
一般情形下,函数内涌现异常,函数上须要声明。
发明打印的成果中只有异常的名称,却没有异常的信息。
由于自定义的异常并未定义信息。
如何定义异常信息呢?
由于父类(Throwable)中已把异常信息的操作都完成了,
所以子类(自定义异常类)只要在结构时,
将异常信息传递给父类通过super语句。
那末便可以够直接通过getMessage办法获得自定义的异常。
自定义异常必需是继承Exception
继承Exception的缘由:
异常系统有一个特色:由于异常类和异常对象都被抛出。
他们都具有可抛性,这个可抛性是Throwable这个系统中的独有特色。
只有这个系统中的类和对象才可以被throw和throws操作。
需求:在本程序中,对除数是-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);//手动通过throw症结字抛出一个自定义异常
return a/b;
}
}
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("除数涌现负数了");
System.out.println("毛病的负数是"+e.getValue());
}
System.out.println("over")
}
}/*
由于项目中会涌现独有的问题
而这些问题并未被java所描写并封装对象
所以对这些独有的问题可以