Java中的Exceptions主要分:checked exception 和 unchecked exception。我们会分别介绍这两类异常及其使用方法。
Checked Exceptions
从Exception给出的定义,我们可以看到:checked exceptions继承于java.lang.Exception。
The class
Exception
and any subclasses that are not also subclasses of RuntimeException are checked exceptions.
checked exceptions必须用try catch显式地捕获或者throws声明抛出异常。
常见的Checked Exceptions有IOException,SQLException,ClassNotFoundException。还有些常用的exception是继承于IOException的,比如FileNotFoundException,MalformedURLException等等。
有时候在使用引用的时候,但是如果调用的方法抛出了checked exception,我们会发现在调用的时候报错,unhandled exception.
Unchecked Exceptions
同样地,我们也可以从RuntimeException看到unchecked exceptions的介绍,unchecked Exceptions继承于java.lang.RuntimeException。
RuntimeException
and its subclasses are unchecked exceptions.
unchecked exceptions不必捕获异常或者抛出。
经常使用的unchecked exceptions有IllegalArgumentException,NullPointerException,IndexOutOfBoundsException,
选择Checked Exceptions 还是 Unchecked Exceptions
对于checked excpetions,编译器会显式地提醒,这样我们就不会忘记处理异常。
有时候出现异常,我们会习惯写log,但是对于RuntimeException可以不写在log里面。