首页 > 编程语言 > 详细

Java异常分类及处理

时间:2020-04-21 23:22:19      阅读:76      评论:0      收藏:0      [点我收藏+]

异常类架构图

技术分享图片

Throwable 是Java语言中所有错误或异常的超类。下一层为Error和Exception

错误Error

Error类是指Java运行时系统的内部错误和资源耗尽错误,程序不会跑出该类的对象,如果从出现了这样的错误,会告知用户,然后终止运行。

 

异常Exception

Exception异常有两个分支,一个是RuntimeException运行时错误,一个是CheckException检查异常,编译时异常。

  • RuntimeException:如:NullPointerException、ClassCastException。RuntimeException往往是在Java虚拟机正常运行期间抛出的异常的超类,如果出现RuntimeException一定是开发者的错误
  • CheckException:如IOException、SQLException。一般是外部错误,这种异常发生在编译阶段,Java编译器会强制程序去捕获此类异常,即会要求你把这端可能出现异常的程序进行 try catch。该类异常一般包括以下几个方面:
    • 试图在文件末尾读取数据
    • 试图打开一个错误格式的URL
    • 试图根据给定的字符串查找class对象,而这个字符串表示的类并不存在

遇到异常不进行处理,而是抛给调用者(throw,throws)

抛出异常有三种形式,throw和throws,还有一种是系统自动抛出异常

throw和throws的区别

  • 位置不同,throws用在函数上,后面跟的是异常类,可以跟多个;而throw用在函数内,后面的跟的是异常对象。
  • 功能不同
    • throws用来声明异常,让调用者只知道该功能可能出现问题,可以给出预先的处理方式。throw抛出具体的问题对象,执行到throw,功能已经结束,转到调用者,并将具体的问题对象抛给调用者。也就是说throw语句独立存在时,下面不要定义语句,执行不到。
    • throws表示出现异常的可能性,并不一定发生这些异常。throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
    • 两者都是消极处理方式,只是抛出或可能抛出异常,不作处理,有函数上层调用者处理。

 

Java异常分类及处理

原文:https://www.cnblogs.com/codingLiu/p/12748248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!