日常生活中,我们在使用各类工具会出现各种各样的异常。如程序在运行期间,内存或硬盘可能满了。又或者用户在使用程序时输入了不是我们预期的数据等。这些问题,在编程中我们叫异常(Exception)。异常发生在程序运行期间,它影响了正常的程序执行流程。
Java中对异常有分三种类型:
java中异常当作对象处理,java.lang.Throwable
是所有异常的超类。在API中,异常类分为两大类。错误Error
和异常Exception
Error类异常表示Java运行时系统的内部错误和资源耗尽错误,程序不希望这种错误被捕获或者是程序处理
Exception类异常又派分两大类,其中,RuntimeException
(运行时异常)则表示由程序错误导致的异常,如数组越界、空(null)指针等;而另一类则是由于I/O错误导致的异常,这类属于其他异常,如打开不存在的文件、在给定字符串中查找不存在的class对象等。
其中Error类和RuntimeException类的所有派生类称为非受查异常,所有其他异常称为受查异常
1.Error与Exception
Error是由Java虚拟机(JVM)生成并抛出的,大多数错误与代码编写者所执行的操作无关。这类错误是程序无法控制和处理的,出现这些错误时JVM会终止线程
Exception中的RuntimeException
,一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生,这类会自动为编写的程序定义异常,我们应该在程序中可以选择捕获处理,也可以不处理;而除RuntimeException
外的非运行时异常是必须要处理的,如果不处理,程序就编译不通过,
2.1受检查异常和非受检查异常