.class public final Lc0/a/w; .super Ljava/lang/Object; .source "CoroutineExceptionHandlerImpl.kt" # static fields .field public static final a:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lkotlinx/coroutines/CoroutineExceptionHandler;", ">;" } .end annotation .end field # direct methods .method public static constructor ()V .locals 1 invoke-static {}, La;->a()Ljava/util/Iterator; move-result-object v0 invoke-static {v0}, Lb0/i/s;->asSequence(Ljava/util/Iterator;)Lkotlin/sequences/Sequence; move-result-object v0 invoke-static {v0}, Lb0/i/s;->toList(Lkotlin/sequences/Sequence;)Ljava/util/List; move-result-object v0 sput-object v0, Lc0/a/w;->a:Ljava/util/List; return-void .end method .method public static final a(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V .locals 6 sget-object v0, Lc0/a/w;->a:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_0 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_1 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lkotlinx/coroutines/CoroutineExceptionHandler; :try_start_0 invoke-interface {v1, p0, p1}, Lkotlinx/coroutines/CoroutineExceptionHandler;->handleException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 goto :goto_0 :catchall_0 move-exception v1 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v2 invoke-virtual {v2}, Ljava/lang/Thread;->getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler; move-result-object v3 if-ne p1, v1, :cond_0 move-object v4, p1 goto :goto_1 :cond_0 new-instance v4, Ljava/lang/RuntimeException; const-string v5, "Exception while trying to handle coroutine exception" invoke-direct {v4, v5, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V invoke-static {v4, p1}, Lf/h/a/f/f/n/f;->addSuppressed(Ljava/lang/Throwable;Ljava/lang/Throwable;)V :goto_1 invoke-interface {v3, v2, v4}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V goto :goto_0 :cond_1 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object p0 invoke-virtual {p0}, Ljava/lang/Thread;->getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler; move-result-object v0 invoke-interface {v0, p0, p1}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V return-void .end method