2021-04-12异常

一、异常处理(捕获异常)

1、try-catch-finally

  • 1.1 try
     try:尝试
     	将有可能出现异常的代码 使用try包括起来
     	try不能单独出现,必须结合catch或者finally来使用
    
  • 1.2 catch
     catch:捕获
     	表示出现异常并且捕获到该异常将会执行的代码块
    
  • 1.3 finally
      finally :最终
     	用于表示不管是否出现异常 不管异常是否被捕获到 都将执行的代码
     	finally不能单独出现 必须结合try或者 try-catch 
    
     finally里面的内容无论是否发生异常都会执行;但是有不执行的唯一情况;
     	1、当try代码块有异常,且catch代码块中有“System.exit(1); // 退出JVM虚拟机”语句时,不执行finally;
     	2、当try代码块无异常,且try代码块中有“System.exit(1); // 退出JVM虚拟机”语句时,不执行finally;
    
  • 1.4 try-catch-finally
     try-catch-finally结构中try语句块是必须的,catch、finally语句块均可选,但两者至少出现之一
    

2、 面试题

   try-catch块中存在return语句,是否还执行finally块? 如果执行,说出执行顺序。

依然执行finally块,但是return值已经固定,fianlly里面对返回值的操作均无效;除非finally块中也有return,此时try-catch-finally结构外部不能再存在return,但是此时finally块中会有警告,不建议使用这种操作;

1.不要在finally对返回值做操作
2.不要在finally中return值
3.finally中不加return,finally中对返回值的操作不会改变catch或者try中的return值 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、声明异常 - throws

1、throws

用于表示声明本方法可能会出现的异常 通知给调用者

调用者可以:
	1、使用try-catch处理
	2、继续声明给JVM虚拟机

2、检查异常和运行时异常

除了RuntimeException和其子类 其他的都称之为检查异常 方法声明 了检查异常 调用者必须处理
RuntimeException和其子类 称之为运行时异常 方法声明了运行时异常 调用者不是必须处理

在这里插入图片描述

三、抛出异常

throw用于表示抛出异常,可以作为一条语句单独使用,抛异常之后不能再写代码,每一句只能抛出一个异常
throws表示声明异常,书写在形参列表之后,可以声明多个异常,多个异常使用逗号分隔,表示本方法有可能出现的异常

   throw使用:在这里插入图片描述
   throw和throws的区别:在这里插入图片描述

四、自定义异常

JDK提供的异常有时候不能满足开发需求,我们可以自己定义异常。
我们可以自定义类继承Exception或者RuntimeException来实现异常定义。

在这里插入图片描述
异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值