javaSE-异常
异常
什么是异常
- 异常是程序在“编译”或“执行”的过程中可能出现的问题,注意:语法错误不算在异常体系中
- 比如:数组索引越界、空指针异常、日期格式化异常,等等
为什么要学习异常?
- 异常一旦出现,如果没有提前处理,程序就会退出jvm虚拟机而终止
- 研究异常并且避免异常,然后提前处理异常,体现的是程序的安全,健壮性
异常体系
Error
- 系统级别问题、JVM退出等,代码无法控制
Exception:java.lang包下,称为异常类,他表示程序本身可以处理的问题 - RuntimeException及其子类:运行时异常,编译阶段不会报错。(空指针异常、索引越界异常)
- 除RuntimeException之外的所有异常:编译时异常,编译器必须处理的,否则程序不能通过编译。(日期格式化异常)
编译时异常的处理形式有三种:
- 编译时直接跑出去给调用者,调用者也继续抛出去
- 出现异常捕获处理
- 前两者结合,出现异常直接抛出给调用者,调用者捕获异常
异常处理方式1 —-throws
- throws:用在方法上,可以将方法内部出现的异常跑出去给本方法的调用者
- 这种方法并不好,发生异常的方法自己不处理异常,如果异常最终抛出去给虚拟机将引起程序死亡
抛出异常格式
规范做法
异常处理方法2 —-try…catch…
- 监视捕获异常,用在方法内部,可以将方法内部出现的异常直接捕获处理
- 这种方式还可以,发生异常的方法自己独立完成异常的处理,程序可以继续往下执行
异常处理方式3 —-前两者结合
- 方法直接将异常通过throws抛出去给调用者
- 调用者收到异常后直接捕获处理
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Abulivyet!
评论