• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

kotlin的runCatching代替try catch的各种用法

武飞扬头像
程序浪
帮助1

1、如果不关心异常

  1.  
    val string = "adc"
  2.  
    runCatching {
  3.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  4.  
    }.getOrNull()
  5.  
     
  6.  
     
  7.  
    val string = "adc"
  8.  
    runCatching {
  9.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  10.  
    }

这个时候,代码有异常,日志是不会打印的,

2、捕获异常并抛出异常日志

  1.  
    val string = "adc"
  2.  
    runCatching {
  3.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  4.  
    }.getOrElse {
  5.  
    it.printStackTrace()
  6.  
    }
  7.  
     
  8.  
    val string = "adc"
  9.  
    runCatching {
  10.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  11.  
    }.onFailure {
  12.  
    it.printStackTrace()
  13.  
    }

3、需要finally的,getOrDefault是有异常时,自定义异常信息

  1.  
    val string = "adc"
  2.  
    runCatching {
  3.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  4.  
    }.onFailure {
  5.  
    it.printStackTrace()
  6.  
    }.getOrNull().run {
  7.  
    Log.e(TAG, "onCreate: $this")
  8.  
    }
  9.  
     
  10.  
     
  11.  
    val string = "adc"
  12.  
    runCatching {
  13.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  14.  
    }.onFailure {
  15.  
    it.printStackTrace()
  16.  
    }.getOrDefault("ddd").run {
  17.  
    Log.e(TAG, "onCreate: $this")
  18.  
    }
学新通

4、失败直接抛出异常(崩溃)

  1.  
    val string = "adc"
  2.  
    runCatching {
  3.  
    Log.e(TAG, "onCreate: ${string.toInt()}")
  4.  
    }.getOrThrow()

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgccege
系列文章
更多 icon
同类精品
更多 icon
继续加载