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

Kotlin技术问题:计算后调用父类方法与自定义异常消息优化

Kotlin相关问题解答

1. 执行计算逻辑后调用父类方法

在Kotlin里,要实现先执行自定义计算/逻辑再调用父类方法,其实很简单:在子类重写的方法里,先写你的业务逻辑代码,之后通过super.方法名()调用父类对应的方法即可。

举个实际场景的例子,比如重写普通类的方法:

open class ParentClass {
    open fun doSomething() {
        println("父类的doSomething方法")
    }
}

class ChildClass : ParentClass() {
    override fun doSomething() {
        // 先执行自己的计算逻辑
        val result = 5 + 3
        println("计算结果:$result")
        
        // 再调用父类的方法
        super.doSomething()
    }
}

不管是重写普通类方法、Android组件的生命周期方法,还是接口的默认方法,这个逻辑都通用——先处理自己的逻辑,再通过super触发父类的实现。

2. 自定义异常嵌入错误消息逻辑

你可以通过给自定义异常类添加带特定参数的构造函数,把消息生成逻辑封装到类内部,这样就不用每次手动拼接消息了。

修改后的异常类代码如下:

class IsEvenError(n: Int) : Exception("$n is even")

这里我们定义了一个接收Int类型参数n的构造函数,在构造异常对象时,自动用传入的n拼接成错误消息,再传递给父类Exception的构造函数。

使用时直接传入数字即可,异常消息会自动生成:

val n = 10
if (n % 2 == 0) {
    throw IsEvenError(n) // 抛出的异常消息为"10 is even"
}

如果需要支持手动传入自定义消息的场景,还可以重载构造函数,兼顾灵活性:

class IsEvenError : Exception {
    // 自动生成消息的构造函数
    constructor(n: Int) : super("$n is even")
    // 手动传消息的构造函数
    constructor(message: String) : super(message)
}

这样既可以用throw IsEvenError(10)自动生成标准消息,也能通过throw IsEvenError("自定义错误提示")满足特殊场景需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:16:05