Error
)和异常类(
Exception
)都是
Throwable
的子类,基本由这两大类展开的。
Error
这个类一般指的是系统级的错误,如OutOfMemoryError
(内存溢出)、StackOverflowError
(栈溢出)这些错误,当出现这些错误时基本是系统问题,基本不能经过捕获去恢复,因此不要求捕获或声明。此时能够由它抛出异常而后记录下来,过后分析。编程
Exception
其实也分为两类异常数组
不受检查异常便是RuntimeException
和RuntimeException
的子类,如NullPointerException
(空指针异常)、ArrayIndexOutOfBoundsException
(数组下标越界异常)、IllegalArgumentException
(非法参数异常)。这类异常不要求try catch
捕获或throws
声明抛出,由于出现此类异常一般是因为代码问题,若是任由程序运行下去可能会出现意想不到后果,因此不该该捕获处理试图恢复。指针
受检查异常即除了RuntimeException
外Exception
类和Exception
下的子类,如InterruptedException
、IOException
。出现此类异常必须在编译前捕获或声明抛出,不然编译不经过。此类异常一般是能够捕获并有效处理因此不能忽略。code