javaSE学习之异常

一、什么是异常???

程序在运行过程中出现的特殊情况。
异常处理的必要性:任何程序都可能存在大量的位置的问题、错误;如果不对这些问题进行处理,则可能导致程序的中断,造成不必要的损失。

二、异常的分类

Throwable:可抛出的,一切错误或异常的父类,
java.lang.Throwable;
JVM或Java throw语句抛出
它的子类:
Error:JVM、硬件、执行逻辑错误,不能手动处理。
Exception:程序在运行和配置中产生的问题,可处理。
–RuntimeException:运行时异常,可处理也可不处理。
–CheckedException:检查异常,必须处理。
处理方案之一:throws Exception

三、异常的产生

–自动抛出异常,当程序运行时遇到不符合规范的代码或结果时,会产生异常。
–手动抛出异常:语法:throw new ExceptionType(“实际参数”);
–产生异常结果:相当于遇到了return语句,导致程序因异常而停止。

四、异常的传递

–按照方法的调用链反向传递,如始终没有处理异常,最终会由JVM进行默认异常处理(打印堆栈跟踪信息)。

–受查异常:throws 声明异常,修饰在方法参数列表后端。
–运行时异常因可处理也可不处理,因此无需声明异常。

异常的处理

try {
	//可能出现异常的代码块
}catch(Exception_Type e){
   	//异常处理的相关代码,如:getMessage()、printStackTrace();
}final {
	//无论异常与否,都会执行的代码!
	//当try{}和catch(){}中都有return等结束程序的语句时,使用finale{代码执行在程序结束前}
}

四、异常的处理

必须对程序可能出现的异常分门别类的分别进行处理!
多重catch:遵从子类异常到父类异常的顺序,父类异常在最后。

五、常见的try{}catch{}结构

1.try{} catch{}
2.try{} catch{} catch{}
3.try{} catch{} finally{}
4.try{} catch{} catch{} finally{}
5.try{} finally{}

六、自定义异常

1.继承自Exception或Exception的子类,常用RuntimeException。

2.必要提供的构造方法:
2.1 无参数构造方法
2.2 String message参数的构造方法

七、关于声明过异常的方法的覆盖
1.带有异常声明的方法覆盖:
1.1 方法名、参数列表、返回值类型必须和父类相同
1.2 子类的访问修饰符符合父类相同或是比父类更宽
1.3 子类中的方法,不能抛出比父类或接口更多、更宽的异常

总结

1.异常的概念:
程序在运行过程中出现的特殊情况。
2.异常的分类:
RuntimeException:运行时异常,可处理,可不处理。
CheckedException:受查异常,必须处理。
3.异常的产生:
3.1 throw new 异常类型(“实际参数”);
3.2 相当于遇到return语句,导致程序因异常而终止。
4.异常的传递:
按照方法的调用链反向传递,如始终没有处理异常,最终会由JVM进行默认异常处理(打印堆栈跟踪信息 e,printStackMessage())。
5.异常的处理:
try{} catch{} finally{}
6.带有异常声明的方法覆盖:
子类中的方法,不能抛出比父类更多、更宽的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值