Java异常总结

Java异常总结

Java提供了大量的异常类,这些类都继承子java.lang.Throwable类

首先看一下Throwable的继承体系
在这里插入图片描述

Error:一般是指与虚拟机相关的问题,如:系统崩溃、虚拟机错误、内存空

间不足、方法调用栈溢出等。这类错误将会导致应用程序中断,不做针对性

处理。直接修改代码。

Exception:分为运行时异常和编译时异常。

  • 运行时异常:如:空指针异常、指定的类找不到、数组越界、方法传递

    参数错误、数据类型转换错误。可以编译通过,但是一运行就停止了,

    程序不会自己处理;

  • 编译时异常:要么用 try … catch… 捕获,要么用 throws 声明抛出,交给父类处理。

异常的处理

1.遇到问题不进行具体的处理,而是继续抛给调用者。其实就是在函数上通

过throws关键字声明异常。告诉调用者处理

2.针对性的处理方式:用try/catch 捕获!

throw和throws区别

throws:在方法声明后面,用来声明异常,让调用者只知道该功能有可能出

现的问题,并由调用者可以给出预先的处理方式。

throw:在方法体内部,抛出具体问题对象。执行到throw功能就已经结束

了,跳转到调用者。并将具体的问题对象也抛给调用者。

异常处理的原则
  • 功能内部有异常throw抛出,功能上一定要throws声明。

    ​ 内部抛什么,功能上就声明什么。

    ​ 声明的目的就是为了让调用者处理,如果调用者不处理,编译失败。

  • 特殊情况:
    当函数内通过throw抛出了RuntimeException及其子类的异常对象时,

    函数上可以不用throws声明。

    不声明的目的就是不让调用者处理。让调用者的程序停止。要对代码进

    行修改。

覆盖时的注意事项
  • 子类方法覆盖父类方法只能抛出父类方法异常或者该异常的子类。

    如果父类方法抛出多个异常,子类只能抛出父类异常的子集

    原则:就是子类的异常必须要在父类的异常处理控制中。

  • 注意:有一种情况,只能try不能throws。

    被覆盖的方法没有抛出异常。

    那么子类在覆盖时,子类方法中发生了异常,就只能try/catch捕获异常无法 throws声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值