通俗理解运行时异常和非运行时异常(一般异常)

通俗理解运行时异常和非运行时异常(一般异常)_第1张图片

Throwable 有两个重要的子类:Exception(异常)和 Error(错误)。

Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。

Exception(异常):是程序本身可以处理的异常。

Exception可以分为checked exceptionsunchecked exceptions

1、checked Exception就是在写代码的时候,编辑器会要求你写try catch或抛出的那种Exception,比如IOException。这种Exception是Java的设计者要求你的程序去处理的。这种异常一般不会影响程序的主体,容易手动诊断修复,所以Java要求你在catch下面写出处理的代码,以保证程序遇到此类exception之后还可以正常运行。

2、unchecked这一类就是在运行时候依然会遇到的exception,所以又叫做RunTimeException,比如NullPointerException, IndexOutOfBoundsException。此类exception相较于前面那种更容易影响程序运行,从设计者角度不提倡从程序中catch出来并处理。

 

运行时异常与一般异常有何异同:一般异常(checked Exception)一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

 

常见RuntimeException:

ClassCastException:例:Map m = new HashMap();m.put(“a”,”a”);Integer isInt = (Integer) m.get("a");抛出异常

NullPointerException

IndexOutOfBoundsException

FileNotFoundException:例:Could not open ServletContext resource [/WEB-INF/xxxx.xml]

ClassNotFountException:例:调用class的forName方法时,找不到指定的类

你可能感兴趣的:(通俗理解运行时异常和非运行时异常(一般异常))