最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin全局捕捉協(xié)程異常方法詳解

 更新時間:2022年08月27日 08:34:52   作者:安果移不動  
協(xié)程是互相協(xié)作的程序,協(xié)程是結(jié)構(gòu)化的。如果把Java的異常處理機制,照搬到Kotlin協(xié)程中,一定會遇到很多的坑。Kotlin協(xié)程中的異常主要分兩大類,協(xié)程取消異常(CancellationException) 其他異常

單個異常捕捉

  val handler = CoroutineExceptionHandler { coroutineContext, throwable ->
            Log.d(TAG, "onCreate: handler${throwable}")
        }
        Log.d(TAG, "onCreate:1")
        findViewById<Button>(R.id.button).also {
            it.setOnClickListener {
                GlobalScope.launch(handler) {
                    Log.d(TAG, "onCreate: onClick")
                    "anc".substring(10)
                }
            }
        }

launch里面如果不寫handler

可以使用這樣的方式來創(chuàng)建全局異常捕獲處理

在main目錄下

新建 resources\META-INF\services\kotlinx.coroutines.CoroutineExceptionHandler

注意沒有后綴哦

然后回到j(luò)ava類里面 隨便找個位置創(chuàng)建class類

內(nèi)容

package com.example.coroutine
import android.util.Log
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlin.coroutines.CoroutineContext
class GlobalCoroutineExceptionHandler : CoroutineExceptionHandler {
    override val key = CoroutineExceptionHandler
    private  val TAG = "GlobalCortineExceptionH"
    override fun handleException(context: CoroutineContext, exception: Throwable) {
        Log.d(TAG, "handleException:${exception} ")
    }
}

根據(jù)包名和類目

package com.example.coroutine.

GlobalCoroutineExceptionHandler

我們可以確定這個文件的路徑為

com.example.coroutine.GlobalCoroutineExceptionHandler

寫到剛才創(chuàng)建的沒有后綴的文件當(dāng)中去

程序里刪除 hander

      findViewById<Button>(R.id.button).also {
            it.setOnClickListener {
                GlobalScope.launch {
                    Log.d(TAG, "onCreate: onClick")
                    "anc".substring(10)
                }
            }
        }

點擊按鈕后程序會閃退

但是

異??梢阅玫健_@就很好了

到此這篇關(guān)于Kotlin全局捕捉協(xié)程異常方法詳解的文章就介紹到這了,更多相關(guān)Kotlin協(xié)程異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Flutter 底部彈窗如何實現(xiàn)多項選擇

    Flutter 底部彈窗如何實現(xiàn)多項選擇

    在Flutter中提供了一個showModelBottomSheet方法用于彈出底部彈窗,本篇基于這個方法介紹實現(xiàn)底部彈窗多選的思路和方式。
    2021-06-06
  • Android ScrollView只能添加一個子控件問題解決方法

    Android ScrollView只能添加一個子控件問題解決方法

    這篇文章主要介紹了Android ScrollView只能添加一個子控件問題解決方法,涉及Android界面布局的相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • flutter圖片組件核心類源碼解析

    flutter圖片組件核心類源碼解析

    這篇文章主要為大家介紹了flutter圖片組件源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Android源碼解析之截屏事件流程

    Android源碼解析之截屏事件流程

    這篇文章我們主要講一下Android系統(tǒng)中的截屏事件處理流程。用過android系統(tǒng)手機的同學(xué)應(yīng)該都知道,一般的android手機按下音量減少鍵和電源按鍵就會觸發(fā)截屏事件.
    2018-05-05
  • Android仿IOS底部彈出對話框

    Android仿IOS底部彈出對話框

    這篇文章主要為大家詳細(xì)介紹了Android仿IOS底部彈出對話框的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android使用CoordinatorLayout實現(xiàn)底部彈出菜單

    Android使用CoordinatorLayout實現(xiàn)底部彈出菜單

    這篇文章主要為大家詳細(xì)介紹了Android使用CoordinatorLayout實現(xiàn)底部彈出菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Android Studio修改Log信息顏色的實現(xiàn)

    Android Studio修改Log信息顏色的實現(xiàn)

    這篇文章主要介紹了Android Studio修改Log信息顏色的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Android學(xué)習(xí)之BottomSheetDialog組件的使用

    Android學(xué)習(xí)之BottomSheetDialog組件的使用

    BottomSheetDialog是底部操作控件,可在屏幕底部創(chuàng)建一個支持滑動關(guān)閉視圖。本文將通過示例詳細(xì)講解它的使用,感興趣的小伙伴可以了解一下
    2022-06-06
  • Android如何快速集成騰訊Bugly

    Android如何快速集成騰訊Bugly

    這篇文章主要介紹了Android如何快速集成騰訊Bugly,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Android Studio添加日志過濾方式

    Android Studio添加日志過濾方式

    這篇文章主要介紹了Android Studio添加日志過濾方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論

呼伦贝尔市| 海淀区| 阿图什市| 磐石市| 贞丰县| 农安县| 丹阳市| 沾化县| 民和| 奈曼旗| 龙游县| 都安| 大渡口区| 双鸭山市| 济宁市| 寿宁县| 高雄县| 罗江县| 佳木斯市| 汉沽区| 武乡县| 泸水县| 开化县| 准格尔旗| 水富县| 巴南区| 泸水县| 杭锦后旗| 呈贡县| 仁怀市| 阳谷县| 铁力市| 于都县| 特克斯县| 稷山县| 修水县| 孟州市| 兴化市| 呈贡县| 丹凤县| 峡江县|