叉烧店并不卖叉烧

Java 检查异常和非检查异常

java TTT 209℃ 0评论

参考 参考2

Java异常结构图

异常类很多,通常异常包括ExceptionError两大类

Error(错误):是程序无法处理的错误,表示运行应用程序中较严重的问题。大多数的错误与代码无关(但是有可能是由于代码质量不好引起内存溢出等问题),而是代表代码运行时JVM(Java Virtual Machine)出现问题。例如,Java虚拟机运行错误(VirtualMachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,Java虚拟机一般会选择线程终止。这些错误表示故障发生于虚拟机自身,或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(VirtualMachineError)、类定义错误(NoClassDefFoundError)等这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。

Exception(异常):是程序本身可以处理的异常也就是常见的空指针(NullPointerException),数组超出范围异常(IndexOutOfBoundException)等

检查异常(非运行时异常)

编译器需要你必须处理的异常。比如编译器要求你需要对一段代码进行try…catch,或者是throws exception,这就是检查异常

对于检查异常(checked exception)的处理方式有:
1.继续抛出,一直抛到Java虚拟机来处理,就是通过throws exception抛出
2.用try……catch捕获

对于检查异常必须处理,否则无法编译程序
除了RuntimeException与其子类,以及错误(Error),其他的都是检查异常

非检查异常(运行时异常)

编译器不要求强制处理的异常,虽然有可能出错,但是不会在编译的时候检查,应为非检查异常的错误都是出现在程序运行时,比如NullPointerExceptionIndexOutOfBoundExceptionVirtualMachineException

对于未检查异常(unchecked exception)的处理方式有:
1.捕获
2.继续抛出
3.不处理

一般对于非检查异常,我们需要去对程序进行优化,比如不让程序出现NullPointerExceptionIndexOutOfBoundException等非检查异常

转载请注明:叉烧店 » Java 检查异常和非检查异常

喜欢 (0)
发表我的评论
取消评论

CAPTCHA Image
Reload Image
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址