Android 捕获运行时异常详解
作者:lqh 发布时间:2023-12-22 21:16:30
标签:Android,捕获,异常
Android 捕获运行时异常详解
Android 异常分为两类:CheckedException 和 UnCheckedException
CheckException:在编译代码时就需要进行try()catch捕获的。
UnCheckException:所有的运行时异常,RuntimeException类和他的子类,都是在APP运行的过程中的发生的。即:APP在运行的过程中崩溃了,这种异常我们就成为运行时异常(比如空指针),当APP崩溃的时候,给用户的体验很不好,所以我们应该捕获这个异常进行处理(弹个界面啦),然后更好的方案是获取到这个异常后,把他传回服务器,这样我们在开发的时候就知道APP哪里的代码有问题了
说了半天到底怎么捕获呢?
安卓提供了一个接口:UncaughtExceptionHandler 这个接口是Thread类的内部接口,有相应的方法:
Thread.getDefaultUncaughtExceptionHandler()
Thread.setDefaultUncaughtExceptionHandler()
通常的方案就是在项目的Application中,调用Thread.setDefaultUncaughtExceptionHandler(),注意这个方法需要一个实现了UnCaughtExceptionHandler接口的对象,我们可以自定义一个类实现这个接口,然后在onUncaughtException()方法中就可以拿到导致APP崩溃的异常了。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/wtyvhreal/article/details/46484775


猜你喜欢
- 自己写的一个日历记事本效果图 具体步骤:1.添加控件SkinEngine。 1.右键“工具箱”。“添加选项卡”,取名“皮肤”。
- mybatis-plus 可以通过@TableId注解指定主键生成策略@TableId(value="id",type=
- 背景介绍在一些需求中,可能存在某些场景,比如先加载自己的bean,然后自己的bean做一些DB操作,初始化配置问题,然后后面的bean基于这
- 目前市面上流行的爬虫以python居多,简单了解之后,觉得简单的一些页面的爬虫,主要就是去解析目标页面(html)。那么就在想,java有没
- 本篇文章主要介绍了Android 三方库混淆规则,分享给大家,具体如下:基本指令-optimizationpasses 5-dontusem
- 一、在idea中查看提交的历史记录右键单击项目单击git单击Show History结果展示:除了第一条记录是创建仓库默认就有的,
- java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list错误解决办法玩web
- 今天有朋友问我Struts2中Action必须实现execute方法吗?顺利的回答出来了。其实分两种情况:1)如果你的Action类是继承自
- 引言C#应用通过 Microsoft.Toolkit.Uwp.Notifications NuGet包可以很方便的发送本地通知(Window
- 在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:@Controller:在类上注解,则此类将编程一个控制器,在项目启动 S
- 使用工具:Android studio 3.0使用方法:一:在build.gradle(Module:app)中添加依赖implementa
- @RequestBody搭配@Data的坑如果用@Data修饰实体类,里面的属性最好不要用连续几个相同字母,如果用千万别用大写。比如下面这个
- 为什么会有常量池的概念?不知道小伙伴们是否有思考过这个问题? 没有思考也无所谓,小编在这里类比一下,大家就会清晰了。什么是池? 我们听的最多
- 首先在枚举类中 定义state 和定义的抽象方法。public enum JavaPlatformState { // 定义st
- 原理比较简单,引入System.Reflection命名空间,利用反射查看某种Type下的方法,属性,字段和支持的接口等。using Sys
- 查了网上的资料,有比较全面的,但有一个问题就是容易出现一个文字和框子不符合的现象。(仔细看,蓝色字母和背景的灰色有空白)要消除这个空白,很简
- 里氏替换原则,OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改
- 实例如下:package bys.utils;import java.util.Date;/** * Created by toutou o
- 1.Nuget搜索Tesseract2.项目安装Tesseract3.引用命名空间using Tesseract;4.上Github下载别人
- 目录前言一、技术介绍1.ReentranReadWriteLock是什么?二、源码分析1.ReadLock2.WriteLock三、单元测试