java中所有错误均继承Throwable
Exception:
1、RunntimeException:运行时异常,表示代码本身存在bug,常见的有NullPointerException,ArrayIndexOutOfBoundsException,ArithmaticException(算数异常,如除数为0)
系统一旦出现RunntimeException,因为是代码错误引起的,try...catch或throws对bug毫无意义,必须要处理。
2、非RunntimeException:受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。
利用try-catch对其进行处理,或者 throws即可
常见的有IOException,InterruptedException。
error:用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath
错误是一个“正规”的条件,但它也是 Error
的子类,因为大多数 应用程序都不应该试图捕获它。通常是系统出现了不可控制的错误,这个通常与程序无关,所以是不需要处理的。