Java基础知识
- 程序运行过程中遇到的各种问题统称为异常
简单分类
- 检查性异常:最具代表性的检查型异常就是用户错误或问题引起的异常,比如要打开一个不存在的文件
- 运行时异常:运行时异常可在编译时被忽略
- 错误:错误不是异常,脱离程序员的控制。比如栈溢出
异常体系结构
- Java把异常当做对象处理,并定义一个基类java.lang.Throwable作为所有异常的基类
- Java中定义了许多异常类,常分为两大类,错误Error和异常Exception
Error
- Error类对象对象由JVM生成并抛出,大多数错误与代码编写者执行的操作无关
- JVM运行错误,当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,JVM一般会选择线程终止
Exception
- 异常一般由程序逻辑错误引起,应该从逻辑角度尽可能避免这类异常发生
- Error和Exception的区别:Error通常是灾难性的错误,是程序无法控制和处理的,一般有Error出现时,JVM会结束运行;Exception通常可以被程序处理
异常处理机制
- 抛出异常
- 捕获异常
- 关键字:try、catch、finally、throw、throws
- try运行可能会有异常的代码块,用catch来捕获异常,finally不管有没有异常,都会运行
- throw在方法中使用,主动抛出异常
- throws在方法上抛出异常
注意:捕获多个异常,要从小到大!!!
自定义异常
- 使用Java内置的异常类可以描述编程中遇到的大部分异常。除此之外可以自定义用户自己的异常类
- 只要继承Exception类,即可编写自定义异常类