java异常的总结

一、异常是什么?

是对问题的描述,对问题进行对象的封装,符合java一切皆对象的设计思想。

二、异常的体系结构

Throwable

       |--Exception

               |--RuntimeException

       |--Error

异常体系的源头为Throwable类,主要包括Exception和Error两大体系。用人体疾病来做类比就是,Error是不可治愈的疾病,例如癌症,不可以进行处理;Exception是可治愈的疾病,例如小感冒,可以通过程序进行处理。

都可以被关键字throws和throw进行操作,也只有异常体系具有此特点。

三、throws和throw的用法

throw定义在函数内,用来抛出异常对象;throws定义在函数上,用来抛出异常类,可以抛出多个异常类;

若抛出的异常对象有父子关系,父异常应该在子异常后面抛出。

当函数内容中有throw抛出异常对象,却没有进行try处理异常的时候,应该在函数上throws出异常类。当然,若出现的异常是RuntimeException及其子类,就不需要在函数上throws出异常类,只需要在函数内throw抛出异常对象就可以了。

如果函数上声明了抛出异常类,有两种处理方式:可以继续throws抛出;也可以try进行处理。

四、异常的种类,有两种

  1. 编译时被检测异常:该异常在编译时,如果既没有throws,也没有进行try处理,那么编译失败;
  2. 运行时异常(编译时不进行检测):在编译时不需要处理,在编译时也不需要检查,在该异常发生时,不需要处理,让程序停止,让调用者认识到错误的发生,从而修改代码。

五、异常处理的语句格式

  1. try{}catch(){}
  2. try{}finally{}
  3. try{}catch(){}finally{}

注意:finally中一般用来释放资源句柄,只有处在System.exit(0)语句之后时才不执行,其他情况一定会执行。

六、自定义异常

一般继承Exception或者RuntimeException,前者定义编译时异常,后者定义运行时异常

七、一个自定义异常的小例子

class NoValueException extends RuntimeException{
	public NoValueException(String message){
		super(message);
	}
}

interface Shape{
	abstract public double area();
}

class Rectangle implements Shape{

	private double length;
	private double width;
	
	public Rectangle(double length,double width){
		if(length<=0 || width<=0)
			throw new NoValueException("出现非法值!");
		this.length=length;
		this.width=width;
	}
	
	@Override
	public double area() {
		// TODO Auto-generated method stub
		return this.length*this.width;
	}
	
}
public class ExceptionDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			double area = new Rectangle(-100, 10).area();
			System.out.println("长方形的面积为:"+area);
		} catch (NoValueException e) {
			// TODO: handle exception
			System.out.println(e.toString());
		}
	}

}

一个小小的总结。~<>~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值