异常的思考:
异常:
1.error: --不希望被程序捕获或者是程序无法处理的错误
内存溢出,栈溢出等等。
2.运行时异常: --不做处理的话可以正常编译。
代码逻辑有问题,不严谨导致,可以规避。比如空指针异常,数组下标越界,类型转换异常,类找不到 等。
3.非运行时异常: --不做处理的话编译无法通过。
io异常,sql异常等。
异常的另一种分类:
1.检查异常 --必须处理,不做处理,编译期无法通过。
2.非检查异常 --包括运行期异常和Error
异常的使用给出了以下指导原则:
- 不要将异常处理用于正常的控制流(设计良好的API不应该强迫它的调用者为了正常的控制流而使用异常)
- 对可以恢复的情况使用受检异常,对编程错误使用运行时异常
- 避免不必要的使用受检异常(可以通过一些状态检测手段来避免异常的发生)
- 优先使用标准的异常
- 每个方法抛出的异常都要有文档
- 保持异常的原子性
- 不要在catch中忽略掉捕获到的异常
自定义异常:
1.自定义异常类--需要继承Exception 重写toString方法
2.在方法中抛出。
参考:https://www.cnblogs.com/Qian123/p/5715402.html