1,异常机制
异常是Java中提供的一种识别及响应错误情况的一致性机制。有效地异常处理能使程序更加健壮、易于调试。
异常发生的原因有很多,比如:
- 用户输入了非法数据
- 要打开的文件不存在
- 网络通信时连接中断
- JVM内存溢出
- 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的
2,常见异常
空指针 下标越界 栈内存溢出 类型转换异常
java中的继承关系
Error:
系统内部错误,这类错误由系统进行处理,程序本身无需捕获处理。
比如:OOM(内存溢出错误)、VirtualMachineError(虚拟机错误)、StackOverflowError(堆栈溢出错误)等,一般发生这种情况,JVM会选择终止程序。
Exception
Exception是所有异常类的父类。分为非RuntimeException和RuntimeException 。
- 非RuntimeException
指程序编译时需要捕获或处理的异常,如IOException、自定义异常等。属于checked异常。 - RuntimeException
指程序编译时不需要捕获或处理的异常,如:NullPointerException等。属于unchecked异常。一般是由程序员粗心导致的。如空指针异常、数组越界、类型转换异常等。
解决方法:
Try...catch...
其中catch可以叠加
Throws
Finally
注意:如果finally中有return,那么这个return的优先级是很高的
如果try...catch语句try中有 return,会在编译时去掉
自定义异常类
继承一个已有的异常类
判断你应该是运行是异常还是编译时异常,如果是运行时异常需要继承 RuntimeException
否则就继承Exception即可,一般情况下 我们自己写的 一定是编译时异常
公共的无参构造
公共的有参构造,传入字符串,并在构造方法中把该字符串传递给父类