一、异常
-
Throwable 所有的异常的父类或者是间接父类,必须是Throwable子类或者是自身的异常才需要进行处理(语言中所有错误或异常的父类)
-
Error 表示非常严重的异常一般都是由JVM抛出的(错误)异常,这种异常不需要进行处理,避免这种异常的发生
-
Exception 表示不是非常严重的异常,不许进行处理
-
RuntimeException 表示是运行时的异常
-
异常的分类
**编译时异常:**在编时期,发生的异常,就是编译时的异常
**运行时异常:**在程序运行期间,发生的异常,就是运行时的异常 -
jvm处理异常
A.在执行代码的时候,发生异常
B.将异常信息封装Throwable类中
C.如果自身不处理,会返回给调用者,一层一层往上进行抛出
D.如果对异常不处理,则由jvm来进行处理
E.打印堆栈信息(异常信息)终止程序 -
语法:
try{
} catch{
}finally{
//不管怎样都会执行finally方法,除非exit(0)等强制停止程序(杀死JVM虚拟机)运行
//(return不行)遇到会先执行finally,再执行return语句
**作用:**关闭IO流执行
};try{ //每个catch如果符合的都会一 一执行
}catch{
}catch{};try{
}finally{};//两者互不影响 -
执行的流程
第一种情况:没有发生异常,执行try中的代码
第二种情况: A.如果发生与声明的异常不匹配,则由jvm类处理 B.如果匹配,则执行 catch的代码
匹配:发生的异常是声明异常本身或者是异常的父类都是可以匹配的 -
说明:
A.在jdk1.7之后,如果声明多个异常, 可以使用 | 将多个异常进行连接,exception异常不用连接多个连接,因为就是父类
B.声明的异常范围越小越好,便于开发人员解决问题
二、解决异常的两种及自定义异常类 throw、throws,try catch
三、集合
-
用于存储数据的容器
-
集合与数组之间的比较
A. 集合只能存引用数据类型 数组既可以基本数据类型,也可以存引用数据类型
B.集合的长度是不固定的,数组的长度是固定的
C.集合分类:单列集合:集合中的每一个元素都是独立的单元
双列集合:集合找那个的元素都是以组为单位,以键值对的方式进行存储