美文网首页
Android 发生异常时的执行流程

Android 发生异常时的执行流程

作者: 雁过留声_泪落无痕 | 来源:发表于2020-11-19 14:38 被阅读0次
  1. 如果使用了 Kotlin 协程,那么会通过 ServiceLoader 的方式指定一个异常处理器 AndroidExceptionPreHandler AndroidExceptionPreHandler
  2. 以 launch 启动一个协程并抛出异常为例,会经历如下流程:

  • a. 这里以 StandaloneCoroutine 为例,会走到 handleJobException 方法 handleJobException
  • b. 接着会走到 handleCoroutineException 方法,默认情况下 context 上是没有指定 CoroutineExceptionHandler 的 handleCoroutineException
  • c. 接着到 handleCoroutineExceptionImpl 方法,这里的 handlers 就是通过 ServiceLoader 获取到的,其中 currentThread 的 uncaughtExceptionHandler 为 ThreadGroup 的实例 handleCoroutineExceptionImpl
  • d. 然后到 ThreadGroup 的 uncaughtException 方法,这里会通过 Thread.getDefaultUncaughtExceptionHandler() 方法获取 DefaultUncaughtExceptionHandler 实例,结果表明为 JavaExceptionReporter 的实例,其成员变量 a 为 RuntimeInit$KillApplicationHandler 实例 ThreadGroup#uncaughtException
  • e. 最后会到 RuntimeInit$KillApplicationHandler 的 uncaughtException 方法,最终在 finally 中结束了进程。 KillApplicationHandler#uncaughtException
  1. 如果没有使用 kotlin 协程,会直接到 ThreadGroup 的 uncaughtException 方法

  2. 其中 AndroidExceptionPreHandler 中只是负责了打印日志而已 _preHandler 实例
  3. RuntimeInit$LoggingHandler LoggingHandler

相关文章

  • Android 发生异常时的执行流程

    如果使用了 Kotlin 协程,那么会通过 ServiceLoader 的方式指定一个异常处理器 AndroidE...

  • E. Java Exception Handling

    1.Java异常是什么? 异常是一种错误,甚至可以在程序运行中发生,打断正常的执行流程。异常会导致不同的情况发生,...

  • SpringBoot 统一异常处理

    一、什么是异常处理 异常(exception) 是程序运行过程中发生的事件, 该事件可以中断程序指令的正常执行流程...

  • Java 异常

    异常处理机制 异常处理模型:终止模型:当异常发生时,就进入异常处理程序,处理结束并不返回异常发生位置继续执行;恢复...

  • 异常

    一、异常 1. 什么是异常 异常是程序在运行期发生的不正常的事件,它会打断指令的正常执行流程。 2.异常的由来 通...

  • ARM异常之常见关注点梳理

    异常处理流程 当异常发生时,处理器有一套预定义好的处理序列来处理异常及从异常中恢复。如果发生异常,除了reset之...

  • laravel5.4 异常处理 - 启动

    laravel 在注册所有异常处理代码 错误发生时处理方法 用户抛出异常时 处理函数 程序结束执行

  • Java异常面试问题

    1. 什么是Java中的异常? 异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程。异常可能来自不同类...

  • 针对异常的防御式手段—失败队列

    背景:什么是异常 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,...

  • javascript异常处理

    1、异常:当javascript引擎执行javascript代码时,发生了错误,导致程序停止运行 2、异常抛出:当...

网友评论

      本文标题:Android 发生异常时的执行流程

      本文链接:https://www.haomeiwen.com/subject/uyzkiktx.html