下面是我在2022.1.9-1.11几天中学习异常处理总结的重要的点:
1.异常体系
错误和异常的祖宗类是Throwable。
Throwable具有两个子类Error、异常(又叫做Exception):
- Error是严重的错误,Java程序是无能为力的一般不进行修改。
- Exception:程序本身可以处理,是我们需要捕获的内容。
2.编译时异常和运行时异常
主要分为受检异常和非受检异常:
受检异常(非RuntimeException 子类的任何子类):编译期间就需要处理的否则程序不可通过编译。
非受检异常(RuntimeException及其子类):编译期间不需要检查,而是出错后回来检查异常并修改。
3.JVM的默认处理方案
- 把异常的名称、异常的原因、异常出现的位置等信息输出在控制台上。
- 程序停止执行。
4.异常处理
有两种方案,如下:
try…catch…
throws(抛出后并没有真正的处理)
在运行时异常中使用后仍不可以继续进行。
在编译时异常时使用后仍需try…catch…才能让报错消失。
5.Throwable的成员方法
其中printStackTrace给出的信息最全所以常用这个。
6.自定义异常
异常的定义是很简单只是我们需要用throw来手动抛出异常,从而给出自己要给出的提示信息,注意正确·如何使用
例:
7.Tips:
- throw和throws