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

简介: 今天工作时对安卓的错误抛出进行了探究,同时对日志输出也看了一番,所以今天我们聊聊安卓在这个方面的写法。

正篇

首先,我们在需要对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

小结

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

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
前端开发 JavaScript 容器
|
JavaScript
vue3高雅的使用useDialog
vue3高雅的使用useDialog
491 0
|
编解码 Go 文件存储
【YOLOv8改进 - 特征融合NECK】 DAMO-YOLO之RepGFPN :实时目标检测的创新型特征金字塔网络
【YOLOv8改进 - 特征融合NECK】 DAMO-YOLO之RepGFPN :实时目标检测的创新型特征金字塔网络
|
Oracle Java 关系型数据库
Java(TM) Platform SE binary 已停止工作”的解决方法
Java(TM) Platform SE binary 已停止工作”的解决方法
1836 141
|
安全 IDE Java
Kotlin学习教程(四)
数据类:使用data class定义 数据类是一种非常强大的类。在Kotlin学习教程(一)中最开始的用的简洁的示例代码就是一个数据类。这里我们再拿过来:
407 2
|
Java Kotlin
Kotlin学习教程(二)
上一篇文章介绍了`Kotlin`的基本语法,我感觉在继续学习更多知识之前有必要单独介绍以下编码规范。 不管学什么东西,开始形成的习惯以后想改都比较困难。所以开始就用规范的方式学习是最好的。
456 0
|
Java Kotlin 索引
Kotlin学习教程(三)
前面介绍了基本语法和编码规范后,接下来学习下基本类型。 在Kotlin中,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数和属性。 一些类型可以有特殊的内部表示——例如, 数字、字符和布尔值可以在运行时表示为原生类型值,但是对于用户来说,它们看起来就像普通的类。 在本节中,我们会描述Kotlin中使用的基本类型: 数字、字符、布尔值、数组与字符串。
335 0
|
运维 C# UED
C# 一分钟浅谈:异常处理的最佳实践
【9月更文挑战第5天】在软件开发中,异常处理对保证程序稳定性和用户体验至关重要。本文从基础概念入手,详细讲解C#中的异常处理策略,并通过代码示例说明如何有效实现异常管理。文章涵盖`try`、`catch`和`finally`块的使用,探讨常见问题如忽略异常和过度捕获,并提出最佳实践建议,如使用具体异常类型、记录异常信息及优雅地处理异常,助力开发者构建更健壮的应用程序。
812 1
|
开发框架 前端开发 .NET
闲话 ASP.NET Core 数据校验(二):FluentValidation 基本用法
闲话 ASP.NET Core 数据校验(二):FluentValidation 基本用法
290 1
|
小程序 JavaScript 前端开发
微信小程序如何控制元素的显示和隐藏
微信小程序如何控制元素的显示和隐藏

热门文章

最新文章