android异常处理概述

而Java提供了一套比较优秀的异常处理机制: 
    1、使开发人员不必编写特殊代码来测试返回值就能发现问题, 
    2、在语法结构就把正常的代码和异常处理的代码清晰的分开来, 
    3、允许我们使用相同的异常处理代码来处理一定范围内的所有异常。 
以期产生一种高效的、有组织的异常处理方式。



异常分为三大类:

1.运行时异常:RuntimeException

2.检查时异常:try{}catch{}finally{}

3.错误:Error

这三个都是Thrawable的子类,实现了Serializable接口。

运行时异常:这类错误时因为程序的算法问题有些bug没有调试完毕。

检查时异常:这类异常编译器会提示需要进行try catch,如果没有的话,就会编译不通过

错误:此类异常是由于系统的问题,比如说内存耗尽。



异常处理的几条规则:
try用于定义可能发生异常的代码段,这个代码块被称为监视区域,所有可能出现检验异常的代码写在这里。
catch代码段紧跟在try代码段后面,中间不能有任何其他代码。
try后面可以没catch代码段,这实际上是放弃了捕捉异常,把异常捕捉的任务交给调用栈的上一层代码。
try后面可以有一个或者多个catch代码段,如果有多个catch代码段那么程序只会进入其中某一个catch。
catch捕捉的多个异常之间有继承关系的话,要先捕捉子类后捕捉父类。
finally代码段可以要也可以不要。
如果try代码段没有产生异常,那么finally代码段会被立即执行,如果产生了异常,那么finally代码段会在catch代码段执行完成后立即执行。
可以只有try和finally没有catch。



常见异常
ArrayIndexOfBoundsException数组下标越界异常
ClassCastException 强制转换类失败异常
IllegalArgumentException 方法参数类型传入异常
IllegalStateException 非法的设备状态异常
NullPointException 传说中的空指针异常,如果一个对象不存在,你有对这个对象使用点操作,那么就会出现该异常
NumberFormatException 把字符串转成数字失败时出现的数字格式异常
AssertionError 断言错误
ExceptionInInitializerError 试图初始化静态变量或者静态初始化块时抛出
StackOverflowError 栈溢出错误
NoClassDefFoundError 找不到指定的类错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值