kotlin: 用runCatching捕获异常

一,代码

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        //使用binding
        binding = ActivityVmListBinding.inflate(layoutInflater)
        setContentView(binding.root)

        //处理按钮点击事件
        binding.button.setOnClickListener {
            testDivide(0, 1)    //正常
            testDivide(1, 0)    //发生除0错
        }
    }

    fun testDivide(a: Int, b: Int) {
        runCatching {
            a / b
        }.onSuccess {
            println("onSuccess: $it")
            return successMsg(it)
        }.onFailure {
            println("onFailure: $it")
            return failMsg(it)
        }
    }

    fun successMsg(o: Any) {
        println("ok: $o")
    }

    fun failMsg(o: Any) {
        println("fail: $o")
    }

二,测试效果:

posted @ 2025-06-28 13:03  刘宏缔的架构森林  阅读(53)  评论(0)    收藏  举报