Java-异常处理语句

一、异常的继承体系

Throwable是所有异常类型的父类。

Throwable有两个子类,Error类和Exception类。

Error:严重的错误,无法处理。

Exception:可以进行处理的异常,分为两类。

  • RuntimeException:运行时异常,可以不处理,编译不会报错。
  • 直接继承Exception类的异常被称为编译时异常,这类异常一定要处理,否则编译无法通过。

二、处理异常的思想

  1. 对于运行时异常,可以使用条件判断语句来规避异常。
  2. 对于编译时异常,用try...catch语句处理。

三、try...catch语句处理异常

//一个try可以跟多个catch
try {
    可能出现异常的代码;
}catch(异常类型 变量名) {
    异常处理语句;
}catch(异常类型 变量名) {
    异常处理语句;(有两个作用:1.提示用户 2.记录异常信息,供测试人员分析)
}

当try里的代码出现异常时,会立刻执行catch中的代码来处理异常,使程序能够正常往下运行。

四、throw/throws抛出异常

  1. throw在方法体中抛出异常。
  2. throws声明方法抛出的异常类型。
  3. 如果方法体里抛出的是运行时异常,方法声明上的throws可以不写。
  4. 抛出异常的目的是让调用者根据具体的情况,自行处理异常。
public static int fibonacci(int n) /*throws RuntimeException*/ {
    if (n <= 0) throw new RuntimeException();
//使用throw关键字抛出异常,throw后面跟一个Throwable类型的实例对象
    if (n == 1 || n == 2) return 1;
    return fibonacci(n-1) + fibonacci(n-2);
}

五、自定义异常

当遇到的异常类型和Java内置的异常类都不匹配时,我们可以自定义一个异常类型。

自定义的异常类型要继承Throwable类,通常继承Exception或RuntimeException。

六、注意事项

  1. 子类在重写父类的方法时,不能抛出比父类更大的异常(不包括运行时异常,因为jvm自己会抛运行时异常)。 
  2. 父类方法没有抛出异常,子类在重写这个方法时也不能抛出异常。
  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值