异常特点

throw 和 throws 关键字的区别:
throw 用于抛出异常对象,后面跟的是异常对象; throw 用在函数 内。
throws 用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。 throws 用在函数 上。
通常情况:函数内容如果有 throw ,抛出异常对象,并没有进行处理,那么函数上一定要声明,否
则编译失败。但是也有特殊情况。


异常分两种:
1:编译时被检查的异常,只要是 Exception 及其子类都是编译时被检测的异常。
2:运行时异常, 其中 Exception 有一个特殊的子类 RuntimeException ,以及 RuntimeException
的子类是运行异常,也就说这个异常是编译时不被检查的异常。
编译时被检查的异常和运行时异常的区别:
编译被检查的异常在函数内被抛出,函数必须要声明,否编译失败。
声明的原因:是需要调用者对该异常进行处理。
运行时异常如果在函数内被抛出,在函数上不需要声明。
不声明的原因:不需要调用者处理,运行时异常发生,已经无法再让程序继续运行,所以,不让
调用处理的,直接让程序停止,由调用者对代码进行修正。


异常出现后,在子父类进行覆盖时,有了一些新的特点:

1:当子类覆盖父类的方法时, 如果父类的方法抛出了异常, 那么子类的方法要么不抛出异常要
么抛出父类异常或者该异常的子类,不能抛出其他异常。
2:如果父类抛出了多个异常,那么子类在覆盖时只能抛出父类的异常的子集。
注意:
如果父类或者接口中的方法没有抛出过异常,那么子类是不可以抛出异常的, 如果子类的覆
盖的方法中出现了异常,只能 try 不能 throws 。
如果这个异常子类无法处理,已经影响了子类方法的具体运算,这时可以在子类方法中,通
过 throw 抛出 RuntimeException 异常或者其子类,这样,子类的方法上是不需要 throws 声明的。
常见异常:
1、脚标越界异常( IndexOutOfBoundsException )包括数组、字符串;
空指针异常( NullPointerException )
2、类型转换异常: ClassCastException
3、没有这个元素异常: NullPointerException
4、不支持操作异常;
异常要尽量避免,如果避免不了,需要预先给出处理方式。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值