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

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

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

單個(gè)異常捕捉

  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里面如果不寫(xiě)handler

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

在main目錄下

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

注意沒(méi)有后綴哦

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

內(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ù)包名和類(lèi)目

package com.example.coroutine.

GlobalCoroutineExceptionHandler

我們可以確定這個(gè)文件的路徑為

com.example.coroutine.GlobalCoroutineExceptionHandler

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

程序里刪除 hander

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

點(diǎn)擊按鈕后程序會(huì)閃退

但是

異??梢阅玫?。這就很好了

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

相關(guān)文章

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

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

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

    Android ScrollView只能添加一個(gè)子控件問(wèn)題解決方法

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

    flutter圖片組件核心類(lèi)源碼解析

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

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

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

    Android仿IOS底部彈出對(duì)話框

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

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

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

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

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

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

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

    Android如何快速集成騰訊Bugly

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

    Android Studio添加日志過(guò)濾方式

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

最新評(píng)論

清徐县| 靖远县| 沁阳市| 临泉县| 大名县| 共和县| 永济市| 永川市| 耒阳市| 陆川县| 信阳市| 建始县| 晋州市| 沅江市| 青州市| 凤台县| 宁陵县| 喀喇| 嵊州市| 双柏县| 大丰市| 全南县| 老河口市| 镇沅| 江孜县| 德兴市| 建水县| 秭归县| 黄平县| 余姚市| 左贡县| 承德县| 光山县| 青浦区| 拉萨市| 南乐县| 长沙县| 抚顺市| 乐安县| 休宁县| 萝北县|