Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。
一、异常的分类:
Throwable包含了错误(Error)和异常(Excetion两类)
Exception 类用于用户程序可能出现的异常情况,它也是用来创建自定义异常类型类的类。
Error 定义了在通常环境下不希望被程序捕获的异常。一般指的是 JVM 错误,如堆栈溢出。
本节不讨论关于 Error 类型的异常处理,因为它们通常是灾难性的致命错误,不是程序可以控制的。接下来将讨论 Exception 类型的异常处理。
Java中的异常可以分成检查型异常、错误和运行时异常3类。下面对它们进行简单介绍。
(1)检查型异常
检查型异常需要程序员提供处理方式,如捕获或者抛出。例如,使用用户输入的名称
打开指定文件时,如果该文件不存在,则会出现异常。编写良好的程序应该捕获这个异常,
并提示用户输入合法的文件名称。除了Error 和RuntimeException及其子类,其他的异常
都是检查型异常。
(2)错误
错误是由程序以外的因素引起的,通常不需要程序员关心。例如,使用用户输入的名
称打开指定文件时,由于硬件或者系统问题而打开失败,则会出现错误。程序员可以直接
输出错误信息并退出程序。Error 及其所有子类都是错误。
(3)运行时异常
运行时异常是由程序员失误引起的,这些异常信息都可以避免。例如,使用用户输入
的名字打开指定文件时,由于程序员失误传递了一一个null值,则会引发运行时异常。程序
员可以判断是否是null值而避免这个异常的发生。RuntimeException 及其所有子类都是运
行时异常。,