Java的异常和错误
在java中什么是异常呢,就是在java语言中,程序执行中发生的不正常情况称为“异常”
但是开发过程中的错误和逻辑错误不是异常
Java程序在执行过程中所发生的异常事件可分为两大类:异常(Exception)和错误(Error),都继承Throwable父类:
Error错误:一般是指与Java虚拟机相关的问题,是虚拟机无法解决的严重问题。如:JVM系统内部错误、动态链接失败、资源耗尽等严重情况。比如:StackOverflowError和OOM(OutOfMemoryError内存溢出)。这些错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图 使用catch块来捕获Error对象。在定义该方法时,也无须在其throws子句中声明该方法可能抛出Error及 其任何子类。
Exception异常:是其它编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问、试图读取资源不存在的文件、网络连接中断、数组角标越界等等
对于错误,一般有两种解决方式:一是遇到错误就终止程序的运行。另一种方法是在编写程序时,要考虑到错误的检测、错误消息的提示,以及错误的处理。
捕获异常的最理想阶段是在编译期间,但有的异常只出现在运行时。比如:除数为0、数组下标越界等。所以可以细分为:编译时异常和运行时异常