异常

来源:互联网 发布:北京seo公司哪家好 编辑:程序博客网 时间:2024/06/05 09:28

一.异常概述
1.异常就是程序在执行过程中遇到的不正常现象
2.异常分为错误(error)和异常(exception)
3.错误不是程序造成的,是一些不可抗拒因素造成的
4.异常又分为运行异常和编译异常(即程序运行时异常和程序编译时异常)
程序运行异常一般是因为程序写的不严谨造成的,一般需要你去修改代码
编译时异常必须处理,否则会造成程序编译不通过,程序无法运行.
二.异常的继承体系
任何一个异常都有一个类与它对应.

Java程序中将exception的直接子类叫做编译时异常,将RuntimeException的子类叫做运行时异常
RuntimeException:ArithmeticException:数学异常 如:1/0
IndexOutOfBoundsException;数组下标越界异常 int[]arr=new int[2] ,arr[3]
NullPointerException:空指针异常
ClassCastException:类转换异常 Cat cat=new Cat(dog)
编译时异常:
IOexception :IO异常
三.异常的处理
1.方式一:

“`
try {
//可能会发生异常的代码
} catch (Exception e) {
//负责对异常进行处理
}finally{

}

比如: int a=1;
int b=0;
try {
System.out.println(a/b);//new ArithmeticException();
//Exception e=new ArithmeticException();只要有一个引用能接收这个对象,我们就认为异常被处理了
} catch (Exception e) {
// } catch (NullPointerException e) { //无法接收对象所以继续报异常
System.out.println(“异常被处理了”);
}
}
}

当try中第一行代码发生异常其他代码将不再执行
不管异常有木有发生,finally 中的代码总会执行.开发中一般用来写释放资源的代码,(关闭流,关闭数据库等),哪怕是方法中前面有return,也会执行finally中的语句.但是System.exit(0)将JVM退出,finally中的代码就不会执行了.
2.方式二:throws
(1)如果方法的右上角加throws表示该方法可能会发生异常
(2)一旦该方法发生异常,该方法会自动向外抛出一个异常对象
(3)调用者有两种处理方法:
1:try catch;调用者处理了方法抛出的异常
2.如果调用者也处理不了,则继续抛—–>main方法——–>jvm——->直接终止程序
(4)手动抛出异常 throw new exception();
(5)throw和throws的区别
1.throw是真实的手动抛出异常
2.throws是声明该方法可能会发生异常
(6)父子间异常:a.父类没有抛异常,子类一定不能抛异常
b.父类抛异常,子类抛的的异常不能比父类更大
(7)接口没有抛异常,实现接口的类也一定不能抛异常
四.自定义异常
1.继承异常
2.在类中写无参构造和有参构造
3.手动抛异常 throw new 自定义异常

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 马来西亚留学签证过期后怎么办 日本留学存款不够怎么办 没有工作单位怎么办签证 深户日本签证怎么办 土耳其跟团签证怎么办 公司取消交通车职工怎么办 出国健康证丢失怎么办 大三阳怎么办健康证 办不了健康证怎么办 办健康证不合格怎么办 美团健康证怎么办 便检取样很多怎么办 拉不出大便怎么办马上解决方法 无业人员怎么办健康证 健康证没身份证怎么办 身份证过期了怎么办护照 驾照体检表丢了怎么办 驾照体检表掉了怎么办 驾校体检表掉了怎么办 身份证掉了怎么办护照 驾照体检表过期了怎么办 助力车行驶证过期怎么办 c1证骑摩托车怎么办 别人知道驾驶证号码怎么办 摩托车卖了车牌怎么办 违章超过12分怎么办 违章扣分24分怎么办 驾驶证有效期过了怎么办 驾驶证到期没审怎么办 驾驶证扣不了分怎么办 集体户口怎么办户口本公证 强制保险单丢了怎么办 车子保险单丢了怎么办 汽车保险单子丢了怎么办 汽车保险贴丢了怎么办 保险本子丢了怎么办 平安保险单丢了怎么办 人寿保险单丢了怎么办 个人保险单丢了怎么办 学生保险单丢了怎么办 车保险单丢了怎么办