*代码块执行问题
代码块
执行时机:对象创建之前
作用:对象创建之前的加载或者初始化工作
静态代码块:
执行时机:类加载时
作用:对类在加载时做一些初始化工作,只执行一次
*异常结构和异常处理
-异常(Exception):依靠程序本身可以解决的非严重性问题
1)运行时异常(RuntimeException)
2)检查异常(CheckException)
-错误(Error):依靠程序本身无法解决的严重性问题
两者有共同的父类Throwable
-异常处理
try:捕获异常
catch:处理相对应的异常
finally:无论是否发生异常,都必定会执行。通常再次释放一些内存资源。例如IO流的对象的释放。
注意:
1、catch可以有多个
2、当发生对应类型异常时,JVM创建对应类型的异常对象
3、catch后的异常类型,一定要按照从子到父的顺序处理。
4、异常处理语句中有return,则先执行finally再执行return。
代码的实现:
try{
//捕获异常
}catch (Exception e){
//处理代码逻辑 实现响应异常的处理
//打印异常的堆栈信息
}
*自定义异常
1、定义异常类,继承Exception类。
2、抛出异常对象
throw new 异常()
注意:方法内部抛出异常,要么try..catch处理,要么使用throws将异常继续抛出给其他调用方法者处理。
3、定义方法的异常抛出
[访问修饰符] [其他修饰符] 返回值类型 方法名 (参数列表) throw 异常列表
4、处理异常
try...catch....finally