异常学习

1.Throwable类是java语言中所有错误或异常的超类,它有两个子类:

  • Error(严重问题)我们不处理,这种问题一般都是很重要的,比如内存溢出

  • Exception (问题)
    在这里插入图片描述

2.异常可分为(Exception):

  • 编译异常:不是RuntimeException的异常 必须进行处理,因为你不处理,编译就不能通过。
  • 运行异常: RuntimeException这种问题我们也不处理,因为是自己的问题,而且这个问题出现肯定是代码不够严谨,需要修正代码。

3.出现运行异常,默认交给JVM处理:

  • 把异常的名称,原因及出现的问题等信息输出在控制台上。
  • 同时会中断程序,不会执行后续的代码。

4.处理异常的方式:

  • try…catch…finally
  • throws
  • throw

5.方式1(变形格式):try…catch

  • 注意:
    try里面的代码越少越好
    catch里面必须有内容,哪怕给一句简答的提示(如果没有内容,相当隐藏了异常)
  • 好处:异常处理后的代码开源继续执行,没有中断。
    在这里插入图片描述
    在这里插入图片描述

6.处理多个异常

  • 方式1:
    每一个写一个try…catch
  • 方式2:
    写一个try,多个catch
    try{
    问题1;
    问题2;

    }catch(异常类名 变量){
    针对问题发处理
    }catch(异常类名 变量){
    针对问题发处理
    }…
    在这里插入图片描述
    在这里插入图片描述

    注意:

    一旦try里面除了问题,就会在这里把问题给抛出去,然后和catch里面的问题进行匹配
    一旦有匹配的,就执行catch里面的处理,然后结束了try…catch
    继续执行后面的语句

7.JDK7的新特性

try{

}catch(异常1 | 异常2 | … 变量名){
处理
}

注意:
1.处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理)
2.多个异常间必须是平级关系。
在这里插入图片描述
在这里插入图片描述

8.编译时异常和运行时异常的区别:

  • 编译时异常:java程序必须显示处理,否则程序就会发生错误,无法通过编译。
  • 运行时异常:无需显示处理,也可以和编译时异常一样处理。

9.方式2:throws

  • 定义功能方法时,需要把出现的问题暴露出来让调用者去处理。那么就通过throws在方法上标识
  • 格式:throws 异常类名
  • 注意:这格式必须跟在方法的括号后面
    在这里插入图片描述

10.方式3:throw

  • 在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。
  • 和throws配合使用(如果没有throws声明异常,则由方法体内的语句处理,反之通过throws声明异常,将方法体内异常抛给调用者处理)
    在这里插入图片描述

11.throws和throw的区别

  • throws:
    用在方法声明后面,跟的是异常类名
    可以跟多个异常类名,用逗号隔开
    表示抛出异常,由该方法的调用者来处理
    throws表示出现异常的一种可能性,并不一定发生这些异常
  • throw
    用在方法体内,跟的是异常对象名
    只能抛出一个异常对象名
    表示抛出异常,由方法体内的语句处理
    throw则是抛出了异常,执行throw则一定抛出了某种异常

12.扩展

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值