学习来源:https://www.bilibili.com/video/BV1Kb411W75N?from=search&seid=2405199140453831589
概述
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,
在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避
免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持
通畅等等。
分类
Java程序在执行过程中所发生的异常事件可分为两类:
Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源
耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性
的代码进行处理。
Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使
用针对性的代码进行处理。例如:
- 空指针访问
- 试图读取不存在的文件
- 网络连接中断
- 数组角标越界
对于这些错误,一般有两种解决方法:一是遇到错误就终止程序的运行。另一种方法是由程序员在编写程序时,就考虑到错误的检测、错误消息的提示,以及错误的处理。
- 捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生。比如:除数为0,数组下标越界等
编译时异常和运行时异常
1.运行时异常
- 是指编译器不要求强制处置的异常。一般是指编程时的逻辑错误,是程序
员应该积极避免其出现的异常。java.lang.RuntimeException类及它的子
类都是运行时异常。 - 对于这类异常,可以不作处理,因为这类异常很普遍,若全处理可能会对
程序的可读性和运行效率产生影响。
2.编译时异常
- 是指编译器要求必须处置的异常。即程序在运行时由于外界因素造成的一
般性异常。编译器要求Java程序必须捕获或声明所有编译时异常。 - 对于这类异常,如果程序不处理,可能会带来意想不到的结果。
常见异常
运行时异常
NullPointerException
ArrayIndexOutOfBoundsException
ClassCastException
ArithmeticException
NumberFormatException
InputMismatchException
编译时异常
java.io.IOExeption
FileNotFoundException
EOFException
java.lang.ClassNotFoundExcept