Logo
Section 1 / 5

处理异常

了解如何有效且精准地处理和抛出自定义异常。

导入

处理异常

了解如何有效且精准地处理和抛出自定义异常。

1private fun calculate(): Int { 2 return 1 / 0 3} 4 5private fun printCalculated() { 6 println(calculate()) 7} 8 9fun main() { 10 println("Before") 11 printCalculated() 12 println("After") 13}
1fun main() { 2 val i1 = "10".toInt() 3 println(i1) 4 val i2 = "ABC".toInt() 5 println(i2) 6}
1private fun functionThrowing() { 2 throw ArithmeticException("Some message") 3} 4 5fun main() { 6 println("Before") 7 functionThrowing() 8 println("After") 9}
1class MyException : Throwable("Some message") 2object MyExceptionObject : Throwable("Some message") 3 4private fun functionThrowing() { 5 throw MyException() 6 // 或者 throw MyExceptionObject 7} 8 9fun main() { 10 println("Before") 11 functionThrowing() 12 println("After") 13}
1class MyException : Throwable("Some message") 2 3fun someFunction() { 4 throw MyException() 5 println("不会被打印") 6} 7 8fun main() { 9 try { 10 someFunction() 11 println("不会被打印") 12 } catch (e: MyException) { 13 println("捕获到 $e") 14 // 捕获到 MyException: Some message 15 } 16}
1import java.lang.NumberFormatException 2 3class MyException : Throwable("Some message") 4 5fun testTryCatch(exception: Throwable) { 6 try { 7 throw exception 8 } catch (e: ArithmeticException) { 9 println("捕获到 ArithmeticException") 10 } catch (e: MyException) { 11 println("捕获到 MyException") 12 } catch (e: Throwable) { 13 println("捕获到某个异常") 14 } 15} 16 17fun main() { 18 testTryCatch(ArithmeticException()) 19 // 捕获到 ArithmeticException 20 testTryCatch(MyException()) 21 // 捕获到 MyException 22 testTryCatch(NumberFormatException()) 23 // 捕获到某个异常 24}

Kotlin 基础

try、catch 和 finally 块