java异常

异常的概念

程序在运行过程中出现的特殊情况
异常处理的必要性:任何程序中都可能存在大量的位置问题、错误。如果不对这些问题进行正确的处理,可能导致程序中断,造成不必要的损失。

异常的分类

Throwable:可抛出的,一切错误或者异常的父类,位于java,lang包中
  • Error:JVM、硬件、执行逻辑错误、不能手动处理
  • Exception: 程序在运行和配置中产生的问题,可以处理
    RuntimeException:运行时异常,可以处理,可不处理
    [ChackedException]:检查时异常,必须处理

常见的运行时异常

异常Exception
空指针异常NullPointerException
数组下标越界ArrayIndexOutOfBoundsException
类型转换异常ClassCastException
数字格式化异常NumberFormatException
算数异常ArithmeticException

异常的产生

  • 自动抛出异常:当程序在运行时遇到的不符合规范的代码或者结果时,会产生异常
  • 手动抛出异常:语法 throw new 异常类型(“实际参数”)
  • 产生异常的结果:相当于遇到return语句,导致程序因异常而终止

异常的传递

按照方法的调用链反向传递,如果始终没有处理异常,最终会由JVM进行默认异常处理

异常处理

try{
//有可能出现异常的代码
}catch(//异常类型){
//捕获异常 处理}

try{
}catch(){
}finally{
//无论是否发生异常都会执行的代码
}

try{}catch(){}catch(){}finally{}

try{}finally{}

多重catch,遵循从子到父的顺序,父类异常在后。

try{}、catch{}、finally{} 中是否可以包含return 语句?如果try{}中有一个return语句,那么紧跟在try后面的finally{}中的代码会不会执行?

  • 可以包含return语句,但是不建议在finally中添加,会导致结果与实际不符
  • 会执行

自定义异常

继承Exception 或Exception的子类
常用的构造方法

  • 无参的构造方法
  • String message参数的构造方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值