JavaSE之异常专题

JavaSE之异常专题

1. java的异常体系

  • Java.lang.Throwable:java中的所有错误和异常的父类
  • Error:代表系统级别错误(属于严重问题),也就是说系统一旦出现问题,sun公司会把这些问题封装成Error对象给出来
  • Exception:叫异常,它代表的才是我们程序可能出现你的问题,多以我们程序员通常会用Exception及其子类来封装程序出线的问题
    • RuntimeException:运行时异常(RuntimeException及其子类),编译阶段不会出现错误提醒,运行时出线的异常(如:数组索引越界异常)
    • 其他异常(编译时异常):编译阶段就会出现错误提醒的。(如日期解析错误)

2. 异常的基本处理

  • 抛出异常(throws)

    • 在方法上使用throws关键字,可以将方法内部出现的异常跑出去给调用者处理

      方法 throws 异常1, 异常2, 异常3 ..{
      	...
      }
      
      // 推荐方式
      方法 throws Exception{
      }
      // Exception代表可以捕获一切异常
      
  • 捕获异常(try…catch)

    • 直接捕获程序出现的异常

      try{
          // 监视可能出现异常的代码!
      }catch(异常类型1 变量){
          // 处理异常
      }catch(异常类型2 变量){
          // 处理异常
      }...
      

3. 异常的作用

  • 作用1:异常是用来定位程序bug的关键信息
  • 作用2:可以作为方法内部的一种特殊返回值以便通知上层调用者,方法的执行问题

4. 自定义异常

  • Java无法为这个世界上全部的问题都提供异常来代表类,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那么就需要自己来定义异常类了。
  • 自定义运行时异常
    • 定义一个异常类继承RuntimeException
    • 重写构造器
    • 通过throw new 异常类(xxx)来创建异常对象并抛出
    • 特点:编译阶段不报错,运行时才可能出现!提醒不属于激进型
  • 自定义编译时异常
    • 定义一个异常类继承Exception
    • 重写构造器
    • 通过throw new 异常类(xxx)创建异常对象并抛出
    • 特点:编译阶段就报错,提醒比较激进。

5. 异常的处理方案

  • 方案1:底层异常层层往上抛出,最外层捕获异常,记录异常信息,并响应适合用户观看的信息进行提示
  • 方案2:最外层捕获异常后,尝试重新修复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值