Java(七):Java(中级)异常

一、概述

  在java等面向对象的语言中,异常本身就是一个类,产生异常就是创建异常对象并抛出一个异常对象。Java处理异常的方法就是中断处理。
  Throwable类是java语言中所有错误或者异常的超类。其下有俩个子类一个是Error(错误,严重的问题)另外一个是Exception(可以解决的问题)。Java的异常分类如图所示:
在这里插入图片描述  其中受查异常是指编译时异常,非受查异常是指运行时异常(RuntimeException)

二、处理异常的方法

2.1 声明异常

2.1.1 声明受查异常

  对于可能发生受查异常的代码,要么声明,要么捕获。在声明时,只需添加throws 异常类型即可,异常类型可添加多个。
【注意事项】

  1. 子类重写父类方法,子类的方法可以不声明异常,但是如果要声明异常,要么声明与父类相同的异常,要么声明其父类声明异常的子类。
  2. 如果父类声明了多个异常,那么子类要么声明与父类相同的异常或者部分相同的异常(子类也可),不能声明父类没有的异常。
  3. 如果被重写的方法没有异常,那么子类方法绝对不可以声明任何异常。
  4. 如果接口的实现类重写方法,异常声明要么声明与父类相同的异常,要么声明其父类声明异常的子类。
2.1.2 声明非受查异常

非受查异常不需要声明异常也不需要声明

2.2 抛出异常

在编写代码过程中尽量去判断可能发生异常的点,主动去抛出指定类型的异常。
【语法格式】
Throw 异常对象(new出来的对象);
抛出异常是指在堆内存中创建异常对象,使用throw关键字抛出具体的异常对象。(通过对输入的内容使用if进行判断抛出异常)

2.3 捕获异常

【作用】捕获异常并进行处理
【语法格式】
  try{
    可能出现异常的代码
  }catch(异常类名 变量名){
    异常处理的代码
  }
【注意事项】

(1)什么情况下try…catch后的代码不执行
  1. throw抛出异常
  2. catch中没有正常进行异常捕获
  3. 在try中遇到return
      finally中的代码无论如何一定会执行,因为是先执行finally后执行return.一般情况下,会将关闭数据库资源,IO资源,Socket资源等语句放在finally中
    只有一句话能让finally的代码不执行:system.exit(任意int型的数字)
    可以用“|”表示多个异常并列
(2)throw和throws的区别:
  1. 位置不同,throw在方法内部,throws在方法的声明处
  2. 内容不同,throw后接异常对象,throws后接异常的名称
  3. 作用不同 ,throw表示异常出现的源头,throws在方法的声明处,告诉方法的调用者该方法会出现异常,然后调用者进行处理,要么自己处理要么捕获

三、自定义异常

自定义异常一般继承RuntimeException

系列
Java(一):Java初识
Java(二):Java基础语法
Java(三):Java流程控制
Java(四):Java方法
Java(五):Java数组
Java(六):Java面向对象
Java关键字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值