소스 검색

Added coroutine exception handler

Vadik Sirekanyan 2 년 전
부모
커밋
12e3b5c778
1개의 변경된 파일11개의 추가작업 그리고 1개의 파일을 삭제
  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) }
 }