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 找不到指定的类错误

发布了39 篇原创文章 · 获赞 46 · 访问量 21万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章