异常

异常

概念

  • 程序在运行过程中出现的出现的特殊情况

处理的必要性

  • 任何程序都可能存在大量的未知问题、错误;如果不进行处理,可能会导致程序中断,造成不必要的损失

分类

Throwable类

  • Error类

    • jvm、硬件、执行逻辑错误,不能手动处理
  • Exception

    • RuntimeExceptin

      • 可处理,可不处理
    • 受查异常

      • 必须处理

常见运行时异常

  • NullPointException

  • ArrayIndexOutOfBoundsException

  • ClassCastException

  • ArithmeticException

异常的产生

自动抛出异常

  • 当程序运行时遇到不规范的代码或结果,会产生异常

手动抛出异常

  • throw 异常对象

结果

  • 相当于遇到return,导致程序因异常而终止

异常的传递

  • 按照方法的调用链反向传递,如始终没有处理异常,最终会由 JVM进行默认异常处理(打印堆栈跟踪信息)并中断程序

检查时异常:throws声明异常,修饰在方法参数后端

运行时异常:可处理可不处理,无需声明异常

异常处理的结构

try catch finally结构

  • try{}catch{}

  • try{}catch{}catch{}

  • try{}catch{}finally{}

  • try{}finaly{}

    • 不能捕获异常,仅仅用来发生异常时,释放资源
    • 一般用在底层代码,只释放资源不处理异常,将异常向上抛出

特点

  • 子类在前,父类在后
  • 发生异常时按顺序逐个匹配
  • 只执行一个与异常类型相匹配的catch语句
  • finally可根据需要写与不写
  • finally代码一定会执行,除非遇到退出jvm(System.exit(0))

自定义异常

  • 实现Exception或子类

带有异常声明的方法重写

  • 子类中的方法,不能抛出比父类更多、更宽的检查时异常

程序在运行和配置中出现的问题,可处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值