全国服务热线:400-0358-011

位置:西安达内教育IT培训机构 > 学校动态 > Java异常结构

Java异常结构

来源:西安达内教育IT培训机构时间:2021/8/17 9:14:45

  Java异常结构
  一、Throwable
  Throwable是Java语言中所有错误和异常的超级类别。
  Throwable包括Error(错误)和Exceptioneption(异常),通常用来指示异常。
  Throwable包含创建线程时的堆栈执行的快照,并提供诸如printStackTrace()之类的接口来获取堆栈跟踪数据等信息。
  二、Error(错误)
  定义:Error类及其子类。程序中无法处理的错误表明应用程序运行中有严重的错误。
  特征:这样的错误通常表示代码运行时JVM有问题。通常有VirtualMachineError(虚拟机运行错误)、NoClassDefFoundEror(类别定义错误)等。例如,OutOfMemoryEror:存储器不足的错误StackOverflowError:栈溢出错误。发生这样的错误时,JVM终止线程。

  这些错误是不检测异常和非代码错误。因此,当这些错误发生时,应用程序不应该处理这些错误。根据Java惯例,我们不应该实现任何新的Error子类别!

Java异常结构

  三、Exception(异常)
  程序本身可以捕捉和处理异常。Exception分为两类:运行异常和编译异常。
  运转异常。
  定义:RuntimeException及其子类表示JVM在运行过程中可能出现的异常。
  特征:Java编译器不会检查。也就是说,当程序中可能出现这种异常时,如果“没有通过throws声明抛出”或“没有通过try-catch语句捕获”,还是会编译通过。比如NullPointerException空指针异常,ArrrayIndexOutBoundException组下标越界异常,ClasscastException类型转换异常,Arithmeticexecption算术异常。这种异常属于非检测异常,一般是由程序逻辑错误引起的,可以在程序中选择捕捉处理,也可以不处理。虽然Java编译器不会检查运行中的异常,但我们也可以通过throws声明抛出,也可以通过try-catch捕捉处理。如果需要修改代码,可以避免为零。
  RuntimeException异常将由Java虚拟机自动抛出并自动捕捉(即使我们没有写异常捕捉语句运行时也会抛出错误!!),这种异常的发生大多数情况是代码本身存在问题,应该从逻辑上解决和改进代码。
  编译异常:
  定义:RuntimeException及其子类以外的异常。
  特征:Java编译器会检查。如果程序中出现样的异常,比如ClassNotFoundException(找不到指定的异常),IOException(IO流异常),要么通过throws发表声明,要么通过try-catch捕捉,否则不能通过编译。在程序中,通常不定制这样的异常,而是直接使用系统提供的异常。这个异常,我们必须手动在代码中添加捕捉句来处理这个异常。
  四、受检异常和非受检异常
  Java的所有异常可分为检查异常和非检查异常。
  受检异常
  编译器需要处理的异常。正确的程序在运行过程中经常会出现,符合预期的异常情况。一旦出现这样的异常,必须以某种方式处理。除了RuntimeException及其子类,其他Exception异常都属于检测异常。编译器会检查这样的异常,也就是说,当编译器检查应用中的某个地方可能出现这样的异常时,会提示你处理这个异常——要么用try-catch捕捉,要么用throws关键词在签名中抛出,否则编译不会通过。
  非受检异常
  编译器不会检查或请求一个必须处理的异常,也就是说,在程序中发生此类异常时,即使我们没有用try-catch捕获它,也没有被抛出throws。这种异常包括运行异常(RuntimeException极其子类)和错误。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3855/news/396615/违者必究! 以上就是西安达内教育IT培训机构 小编为您整理 Java异常结构的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-0358-011