1.异常的分类
在Java中,通过Throwable及其子类描述各种不同的异常类型。
Error
- Error是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。
- 例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不 再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。
Exception
1)checked exception(受检异常)
- Java编译器会检查这些异常,当程序中可能出现这类异常时,要求必须进行异常处理,否则编译不会通过。
- 如IOException、SQLException等。
2)unchecked exception(非受检异常)---RuntimeException
- Java编译器不会检查这些异常,在程序中可以选择捕获处理,也可以不处理,照样正常编译通过。
- 包含RuntimeException类及其子类异常。
- 如NullPointerException(空指针异常)、 IndexOutOfBoundsException(下标越界异常)等,这些异常是 unchecked exception。
2.关键字
try,catch,finally,throw,throws
3.最佳实践
-
处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
-
在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
- 对于不确定的代码,也可以加上try-catch,处理潜在的异常
- 尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出
- 具体如何处理异常,要根据不同的业务需求和异常类型去决定
- 尽量添加finally语句块去释放占用的资源
4.参考资料
https://cloud.tencent.com/developer/article/1562984 Java常用工具之异常