乐趣区

关于java:Throwable异常体系

1.1Throwable 对象派生出两种类型:

Error 和 Exception,前者用来示意编译时和零碎谬误,程序员往往不用关怀;后者是能够被抛出的根本类型,须要程序员关注.
Java 异样(Exception)依照编译器查看形式能够分为:
查看型异样(CheckedException)和非查看型异样(UncheckedException)。

1.2 查看型异样(CheckedException)

在 Java 中所有不是 RuntimeException 派生的 Exception 都是查看型异样。当函数中存在抛出查看型异样的操作时该函数的函数申明中必须蕴含 throws 语句。调用该函数的函数也必须对该异样进行解决(try-catch),如不进行解决则必须在调用函数上申明 throws 语句。

   查看型异样是 JAVA 独创的,在编译期对异样的解决有强制性的要求。在 JDK 代码中大量的异样属于查看型异样,包含 IOException,SQLException 等等。

1.3 非查看型异样(UncheckedException)

       在 Java 中所有 RuntimeException 的派生类都是非查看型异样,与查看型异样绝对抛出非查看型异样能够不在函数申明中增加 throws 语句,调用函数上也不须要强制解决。

       常见的 NullPointException,ClassCastException 是常见的非查看型异样。非查看型异样 能够不应用 try…catch 进行解决,然而如果有异样产生,则异样将由 JVM 进行解决。对于 RuntimeException 的子类最好也应用异样解决机制。尽管 RuntimeException 的异样能够不应用 try…catch 进行解决,然而如果一旦产生异样,则必定会导致程序中断执行,所以,为了保障程序再出错后仍然能够执行,在开发代码时最好应用 try…catch 的异样解决机制进行解决。
1.4 自定义异样

 继承自 Exception 或者 RuntimeException, 只须要提供无参结构和一个带参结构即可 
/**IllegalAgeException:自定义异样,继承自 Exception 或者 RuntimeException  */
// 默认结构器
public IllegalAgeException(){}
// 带有详细信息的结构器,信息存在 messgae 中
public IllegalAgeException(String message){super(message);
}

1.5 finally 关键字
finally 用于开释资源,它的代码永远会执行。非凡状况:在执行到 finally 之前 jvm 退出了

退出移动版