异常总结

1、与Error一样继承了Throwable

2、Exception分为运行时异常和受检异常

RuntimeException : 空指针异常、ArithmeticException(除法运算或取模时除数为0),强转异常、数组越界

运行时异常是程序内部运行时出现的异常,是程序本身的错误,不应通过捕获异常处理,良好的编程习惯遇到对象判空、除数做非0判断,强转时用instanceof,判断索引>0 && < length

CheckException:受检异常一般是外部错误,程序本身在执行时无法预知,比如IO异常、ClassNotFoundException等,这些异常需要捕获异常,在编译时才能通过,如果是敏感异常在捕获异常时可以转换成其他异常,或者要打印异常以便定位时要防止敏感信息泄露。

3、throw与throws

throw是遇到非预期值时主动抛出的异常,是为了禁用调用者的行为,抛出一个异常即可所以是单数

throws是程序可能抛出的异常,用在方法的名称后面,而该方法并不想处理某些异常,交由调用者处理,方法可能出现多种异常向上层抛出,所以是复数。

4、捕获异常在Android中的应用

当发生异常时如果未捕获异常而要终止时,JVM会在其线程中查询UncaughtExceptionHandler是否设置,如果设置就会调用接口方法,并传递线程和异常信息数据。我们知道Android四大组件都是在主线程的 ,所以我们只需要在主线程中设置UncaughtExceptionHandler具体实现对象即可实现我们想要做的事情,比如打印异常信息到文件中。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值