异常
异常都是从 Throwable
类派生出来的,而 Throwable
类是直接从 Object
类继承而来
异常通常有四类:
- Error:系统内部错误,这类错误由系统进行处理,程序本身无需捕获处理。
- Exception:可以处理的异常。
- RuntimeException:可以捕获,也可以不捕获的异常。
- 继承 Exception 的其他类:必须捕获,通常在 API 文档中会说明这些方法抛出哪些异常。
RuntimeExcption 异常(运行时异常)通常有以下几种:
- 错误的类型转换
- 数组访问越界
- 访问
null
指针 - 算术异常
一般来说,RuntimeException 都是代码逻辑出现问题。
非 RuntimeException(受检异常,Checked Exception)一般有:
- 打开一个不存在的文件
- 没有找到具有指定名称的类
- 操作文件异常
受检异常是编译器要求必须处理的异常,必须使用 try catch
处理,或者使用 throw
抛出,交给上层调用者处理。