Java异常机制

Java异常机制

1.异常分类

对于异常的处理方式有三种:if避免、try catch finally 处理、throws抛出!
在这里插入图片描述
java.lang.Throwable为Error和Exception的超类,Error是表示java虚拟机无法解决的错误,无法使用编码解决,如:JVM挂掉等。Exception是描述由于编码或偶然外在因素所造成的轻微错误,可通过编码解决。
RuntimeException为运行时异常,在编译期间无法被检测到,只有在运行时会产生错误并终止程序。
IOException和其他一切是在编译器就能检测到的异常

要记住的运行时异常
ArithmeticException类 - 算术异常 0作为除数和余数
ArrayIndexOutOfBoundsException类 - 数组下标越界异常 a[n]数组下标是从0开始,不能取n
NullPointerException - 空指针异常 直接调用未实例化的对象
ClassCastException - 类型转换异常 没有多态的情况下父类强转为子类
NumberFormatException - 数字格式异常 常见于输入情况和String类型和数字类型的转化

在这里插入图片描述

2.异常的捕获

语法格式
try {
编写可能发生异常的代码; }
catch(异常类型 引用变量名) {
编写针对该类异常的处理代码;
}

finally {
编写无论是否发生异常都要执行的代码;
}
注意事项
a.当需要编写多个catch分支时,切记小类型应该放在大类型的前面;
b.懒人的写法:
catch(Exception e) {}
c.finally通常用于进行善后处理,如:关闭已经打开的文件等。

执行流程
try {
a;
b; - 可能发生异常的语句
c;
}catch(Exception ex) {
d;
}finally {
e;
}
当没有发生异常时的执行流程:a b c e;
当发生异常时的执行流程:a b d e;

3.异常抛出

在某些特殊情况下有些异常不能处理或者不便于处理时,就可以将该异常转移给该方法的调用者,这种方法就叫异常的抛出。当方法执行时出现异常,则底层生成一个异常类对象抛出,此时异常代码后续的代码就不再执行。

当程序执行过程中发生异常但又没有手动处理时,则由Java虚拟机采用默认方式处理异常,而默认处理方式就是:打印异常的名称、异常发生的原因、异常发生的位置以及终止程序。手动处理后依然能运行

4.自定义异常

实现流程
a.自定义xxxException异常类继承Exception类或者其子类。
b.提供两个版本的构造方法,一个是无参构造方法,另外一个是字符串作为参数的构造方法。
异常的产生
throw new 异常类型(实参);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值