Error和Exception的分析
共同点
- Error和Exception都是继承自Throwable类,并且Error和Exception都可以通过catch进行捕获。但是Error是不推荐使用catch关键字进行捕获的。
不同点
- Exception:是程序本身可以处理的异常。可以通过catch进行捕获
- Error: 是程序无法处理的错误。虽然可以通过catch进行捕获,但是强烈不推荐。常见的Error有:OutOfMemoryError和NoClassDefFoundError。并且发生这些错误时,JVM一般会选择中止线程。
Exception的类型
- Exception可以分为两大类:受检查异常(这种异常必须处理,否者编译不通过)和不受检查异常(可以不处理)。
- 其中处理RuntimeException及其子类都是受检查异常。常见的IO异常以及ClassNotFoundException。 而RuntimeException及其子类就包含NullPointerException、IllegalArgumentException等等异常。