android Exception 研究

来源:互联网 发布:java函数返回值类型 编辑:程序博客网 时间:2024/06/14 06:16

Exception :例外,异常


在java中引入exception目的是 增加对程序出现异常的管控。

分类:


1. 虚拟机级别的错误: Error

虚拟机需要负责的错误,这种错误非常严重,错误所在线程会直接崩溃,程序员一般不考虑此类错误。

2. API级别的错误:CheckException

提供的API可能会出现的错误,而且这种API一般是交互性的,这种错误不太严重,强制要求程序员必须 try catch 捕获,所以程序不会崩溃。
出现了这种错误,说明有可能是程序的问题,也有可能不是。程序员需要检查处理。

如:
IOException

JSONException

SQLException

TimeoutException

XmlPullParserException



3. 程序员级别的错误:RunTimeException

程序员需要处理的错误,这种错误比较严重,一般是逻辑或不符合规范造成的,程序所在线程会崩溃。一般不需要捕获。
出现了这种错误,说明程序有严重的问题,程序员需要对程序逻辑重新处理。

如:
NullPointerException
NumberFormatException
ClassCastException
StringIndexOutOfBoundsException
ArrayIndexOutOfBoundsException
IllegalArgumentException
ArithmeticException


结构:


Throwable

|_____Error
|____Exception
________|____ RuntimeException
________|____ other

在java中 try catch 的作用: 可以捕获所有 throwable 的东西。包括error。
一旦捕获了,异常不会往上层传递,程序不会崩溃。

在android中 try catch 的作用 : 只可以捕获checkException。如果是Error或者是 RuntimeException,
即使catch住了,则程序仍然会崩溃。


如何获取exception log:
使用UncaughtExceptionHandler来捕获unchecked异常保存到SDcard,到一定大小后发送,然后重置。


demo地址:
http://download.csdn.net/detail/javalive09/6991699


0 0
原创粉丝点击