IT评测·应用市场-qidao123.com

标题: Kotlin 抛出和捕获异常(十一) [打印本页]

作者: 海哥    时间: 2024-11-28 16:46
标题: Kotlin 抛出和捕获异常(十一)
1.1 在 Kotlin 中抛出和捕获异常

  1. if (percentage !in 0..100) {                 // <1>
  2.     throw IllegalArgumentException(          // <1>
  3.         "A percentage value must be between 0 and 100: $percentage"
  4.     )
  5. }
复制代码
  1. val percentage =
  2.     if (number in 0..100)
  3.         number
  4.     else
  5.         // <1>
  6.         throw IllegalArgumentException("A percentage value must be between 0 and 100: $number"
  7. )
复制代码
1.1.1 处置惩罚异常和从错误中恢复: try、catch 和 finally

  1. import java.io.BufferedReader
  2. import java.io.StringReader
  3. fun readNumber(reader: BufferedReader): Int? {          // <2>
  4.     try {
  5.         val line = reader.readLine()                    // <1>
  6.         return Integer.parseInt(line)                   // <1>
  7.     } catch (e: NumberFormatException) {
  8.         return null                                     // <1>
  9.     } finally {
  10.         reader.close()
  11.     }
  12. }
  13. fun main() {
  14.     val reader = BufferedReader(StringReader("239"))   // <1>
  15.     println(readNumber(reader))
  16.     // 239
  17. }
复制代码
  1. Integer readNumber(BufferedReader reader) throws IOException   // <1>
复制代码
  1. fun readNumber(reader: BufferedReader): Int {
  2.     val line = reader.readLine()                     // <1>
  3.     reader.close()
  4.     return Integer.parseInt(line)
  5. }
复制代码
1.1.2 使用 try 作为表达式

  1. fun readNumber(reader: BufferedReader): Int? {
  2.     val number = try {                                  // <1>
  3.         Integer.parseInt(reader.readLine())
  4.     }catch (e: NumberFormatException) {
  5.         return null
  6.     }finally {
  7.         reader.close()
  8.     }
  9. }
复制代码
  1. fun readNumber(reader: BufferedReader): Int? {
  2.     val number = try {
  3.         Integer.parseInt(reader.readLine())
  4.     }catch (e: NumberFormatException) {
  5.         null                                       // <1>
  6.     }
  7.     println("number: $number")
  8.     return number
  9. }
复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4