JavaSE 异常
1.异常的概述和分类
A:异常的概述:异常就是Java程序在运行过程中出现的错误。
B:异常的分类:举例:张三骑自行车旅游
C:异常的继承体系
异常的基类:Throwable
严重问题:Error不予处理,因为这种问题一般是很严重的问题,比如: 内存溢出
非严重问题:Exception
编译时异常:非RuntimeException
运行时异常:RuntimeException
2.JVM默认是如何处理异常的
A:JVM默认是如何处理异常的
main函数收到这个问题时,有两种处理方式:
a:自己将该问题处理,然后继续运行
b:自己没有针对的处理方式,只有交给调用main的jvm来处理
jvm有一个默认的异常处理机制,就将该异常进行处理.
并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行
B:案例演示: 1 / 0 ; JVM默认如何处理异常
3.try…catch的方式处理异常1
A:异常处理的两种方式
a:try…catch…finally
b:throws
B:try...catch处理异常的基本格式
try {
可能出现问题的代码 ;
}catch(异常名 变量名){
针对问题的处理 ;
}finally{
释放资源;
}
变形格式:
try {
可能出现问题的代码 ;
}catch(异常名 变量名){
针对问题的处理 ;
}
注意事项:
a: try中的代码越少越好
b: catch中要做处理,哪怕是一条输出语句也可以.(不能将异常信息隐藏)
C:案例演示: try...catch...finally的方式处理1个异常
4.try…catch的方式处理异常2
try {
可能出现问题的代码 ;
}catch(异常名1 变量名1){
对异常的处理方式 ;
}catch (异常名2 变量名2){
对异常的处理方式 ;
}....
A:案例演示: try...catch的方式处理多个异常
注意事项:
1:能明确的尽量明确,不要用大的来处理。
2:平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面。
5.JDK7针对多个异常的处理方案
JDK1.7中对多个catch的变形格式
try {
可能出现问题的代码 ;
}catch(异常名1 | 异常名2 | .... 变量名){
对异常的处理方案 ;
}
好处: 就是简化了代码
弊端: 对多个异常的处理方式是一致的
多个异常之间只能是平级的关系,不能出现子父类的继承关系
A:案例演示: JDK7以后处理多个异常的方式及注意事项
注意事项:
1.处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理)
2.多个异常间必须是平级关系。