You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用try-catch-finally语句修复Kotlin中pepTalk函数的调用?

修复Kotlin函数调用的异常处理逻辑

需求回顾

  • 函数pepTalk接收由空格分隔的两个单词组成的姓名,返回包含姓名的临行建议字符串;若姓名格式不正确(比如不足两个单词),会抛出数组越界异常
  • 需要将main函数中的函数调用包裹在try-catch-finally块中,实现:
    • 正常执行时,advice等于pepTalk的返回结果
    • 发生异常时,advice赋值为"Don't lose the towel, nameless one."
    • 无论是否发生异常,finally块都要打印"Good luck!"

修复后的代码

fun pepTalk(name: String): String {
    val array = name.split(" ").toTypedArray()
    val firstName = array[0]
    val secondName = array[1]
    return "Don't lose the towel, traveler $firstName $secondName!"
}   

// do not change the function above        
fun main() {
    val name = readLine()!!
    val advice: String
    try {
        advice = pepTalk(name)
    } catch (e: Exception) {
        advice = "Don't lose the towel, nameless one."
    } finally {
        println("Good luck!")
    }
    print(advice)        
}

代码说明

  1. try块:执行pepTalk函数调用,若姓名格式正确(包含两个空格分隔的单词),则将返回值赋值给advice
  2. catch块:捕获pepTalk执行过程中可能抛出的异常(比如数组越界ArrayIndexOutOfBoundsException),此时将指定的默认字符串赋值给advice
  3. finally块:无论try块是否成功执行、是否触发异常,都会执行该块中的代码,打印"Good luck!"
  4. 变量声明:将advice的声明移到try-catch外部,保证在print(advice)时变量已被正确初始化

内容的提问来源于stack exchange,提问作者Artem Riabchikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:43:23