安卓的错误捕捉与日志输出探讨

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 今天工作时对安卓的错误抛出进行了探究,同时对日志输出也看了一番,所以今天我们聊聊安卓在这个方面的写法。

正篇

首先,我们在需要对APP错误进行分析时,我们通常会在对应位置打印日志,但有时候有些位置由于异常而直接导致程序崩溃,这时候就需要我们抛出错误,捕捉异常,输出相应日志。

不规范的示例:

try {
    throw new FileNotFoundException();
} catch (Exception e) {
    e.fillInStackTrace();
    Log.e("There has a error, code = ", e.getMessage());
}

网络异常,图片无法展示
|


这里的 System.exit(0)是用于在异常获取并输出日志后退出程序。

而XLog是非常好用的日志输出工具,可同时在多个通道打印日志,如 Logcat、Console 和文件。

这里我们用到的是XLog的这个方法:

/**
 * Log a message and a throwable with level {@link LogLevel#ERROR}.
 *
 * @param msg the message to log
 * @param tr  the throwable to be log
 */
public static void e(String msg, Throwable tr) {
  assertInitialization();
  sLogger.e(msg, tr);
}

当然,这里附上最新的XLog包导入命令,在项目下app的build.gradle中加入下列这一行代码:

implementation 'com.elvishew:xlog:1.10.1'

网络异常,图片无法展示
|


即可使用XLog来输出日志,官方给出的介绍说这是一款轻量、美观强大、可扩展的 Android 和 Java 日志库。


网络异常,图片无法展示
|


从官方给出的图来看,的确非常清晰。 如果想使用可以看这个官方使用文档:xLog/README_ZH.md at master · elvishew/xLog · GitHub

小结

今天这篇是有感而发,希望可以总结平时收获,后面会单独开栏用来收集这些平时突然想记录的技术小栈,希望可以记得更扎实一些。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
0
分享
相关文章
|
11月前
|
Flutter笔记:Widgets Easier组件库(5)使用加减器
Flutter笔记:Widgets Easier组件库(5)使用加减器
240 2
Java(TM) Platform SE binary 已停止工作”的解决方法
Java(TM) Platform SE binary 已停止工作”的解决方法
845 60
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
PeterCat 是一款开源的智能答疑机器人,能够自动抓取 GitHub 上的文档和 issue 构建知识库,提供对话式答疑服务,帮助开发者和社区维护者高效解决技术问题。
456 7
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
ERP系统的实施与变更管理:确保成功的数字化转型
【7月更文挑战第29天】 ERP系统的实施与变更管理:确保成功的数字化转型
645 0
Android实战经验之Kotlin中快速实现MVI架构
本文介绍MVI(Model-View-Intent)架构模式,强调单向数据流与不可变状态管理,提升Android应用的可维护性和可测试性。MVI分为Model(存储数据)、View(展示UI)、Intent(用户动作)、State(UI状态)与ViewModel(处理逻辑)。通过Kotlin示例展示了MVI的实现过程,包括定义Model、State、Intent及创建ViewModel,并在View中观察状态更新UI。
369 12
kotlin开发 webview如何在收到JS调用后,native返回数据给到JS
这段内容描述了在Hybrid App开发中,使用Kotlin的Compose构建的Web视图(WebView)如何通过JsBridge实现JavaScript与原生代码的交互
kotlin webview 加载网页失败后如何再次重试
在Kotlin中,当使用WebView加载网页失败时,可通过设置WebViewClient并覆盖`onReceivedError`方法来捕获失败事件。在该回调中,可以显示错误信息或尝试使用`reload()`重试加载。以下是一个简要示例展示如何处理加载失败
Android focusable属性的作用
Android focusable属性的作用
391 0
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等