Parcourir la source

Added coroutine exception handler

Vadik Sirekanyan il y a 2 ans
Parent
commit
12e3b5c778
1 fichiers modifiés avec 11 ajouts et 1 suppressions
  1. 11 1
      app/src/main/java/com/sirekanian/spacetime/MainPresenter.kt

+ 11 - 1
app/src/main/java/com/sirekanian/spacetime/MainPresenter.kt

@@ -11,13 +11,23 @@ import com.sirekanian.spacetime.data.api.ThumbnailApi
 import com.sirekanian.spacetime.ext.app
 import com.sirekanian.spacetime.model.GalleryPage
 import com.sirekanian.spacetime.model.ImagePage
+import kotlinx.coroutines.CoroutineExceptionHandler
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
+import java.net.UnknownHostException
 
 @Composable
 fun rememberMainPresenter(): MainPresenter {
     val app = LocalContext.current.app()
-    val scope = rememberCoroutineScope()
+    val scope = rememberCoroutineScope {
+        CoroutineExceptionHandler { _, throwable ->
+            if (throwable is UnknownHostException) {
+                Log.e("SPACETIME", "Uncaught exception: ${throwable.message}")
+            } else {
+                Log.e("SPACETIME", "Uncaught exception", throwable)
+            }
+        }
+    }
     return remember { MainPresenterImpl(app.api, app.repository, scope) }
 }