异常

异常

异常对象都是派生于Throwable类的一个实例
Java中的异常层次结构
所有的异常都是由Throwable继承而来.
Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误.这种错误是比较少见的.
Exception层次有两个分支, 一个分支派生于RuntimeException; 另一个分支包含其他异常. 划分两个分支的规则是: 由程序错误导致的异常属于RuntimeException; 而程序本身没有问题, 但由于想I/O错误这类问题导致的异常属于其他异常(IOException).
在这里插入图片描述

出现RuntimeException异常, 那么一定就是你的问题. 常见的RuntimeException异常有: 错误的类型转换, 数组访问越界, 访问null指针.

关于其他异常就是程序本身没有语法错误, 比如试图打开一个不存在的文件, 试图查找一个不存在的类.

一般把Exception分为运行时异常和受查(可查,checked)异常.
Error错误是不能够被捕获的.

运行时异常与非运行时异常的区别(面试题) :
RuntimeException异常是不可查异常,不需要进行显式的捕捉.
非运行时异常是可查异常,必须进行显式的捕捉,或者抛出
注:运行时异常是运行的时候抛出的异常,非运行时异常,不运行也能抛出

还要注意一点:子类方法抛出的异常只能是父类方法中所声明的异常!!!

throw和throws的区别
throws是在方法声明中, 而throw是抛出异常

private static void method() throws Exception {
		
		if(...){
			throw new FileFormatException
		}
    }
    

如果方法没有声明可能抛出的异常A, 而实际运行时方法中又抛出了异常A.
运行异常(RuntimeException)向上传递, 如果一直没有被处理, 最终会被jvm虚拟机处理(停止线程,打印异常)
非运行异常, 必须捕获或者在方法区中声明.

访问堆栈轨迹

	Throwable t = new Throwable();
	t.printStaticTrace();

通过调用Throwable类的printStaticTrace方法访问堆栈轨迹的文本描述信息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值