android Exception 研究

本文详细介绍了Java中的异常处理机制,包括虚拟机级别的错误、API级别的错误及程序员级别的错误,并解释了trycatch的作用以及如何获取异常日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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地址:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值