阅读背景:

115自定义异常

来源:互联网 

/*
由于项目中会涌现独有的问题
而这些问题并未被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所描写并封装对象
所以对这些独有的问题可以




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: