一、练习题

1. 使用try表达式捕捉getOrThrows函数的异常。

package Study


main() {
    let opt = Option<Int64>.None
    try {
        println(opt.getOrThrow())
    } catch (e: Exception) {
        println(e)
    }
    println(Option<Int64>.Some(18).getOrThrow())
}

2. 使用try-with-resources表达式关闭资源1和资源2的资源,其中资源2里组合了资源1,在外面也同时使用了资源1和资源2。

package Study

class ResourceClass1 <: Resource {
    // 表示资源是否关闭的标记, 默认没关闭
    var flag = false

    public override func isClosed() {
        return flag
    }

    public override func close() {
        this.flag = true
        println("关闭资源1")
    }

    public func show() {
        println("使用资源1")
    }
}

class ResourceClass2 <: Resource {
    var flag = false
    var resource: ResourceClass1 = ResourceClass1()

    public override func isClosed() {
        return flag
    }

    public override func close() {
        resource.close()
        println("在资源2里关闭资源1成功")
        if (!this.flag) {
            this.flag = true
            println("关闭资源2")
        }
    }

    public func show() {
        resource.show()
        println("使用资源2")
    }    
}

main() {
    try (
        resourse1 = ResourceClass1(),
        resourse2 = ResourceClass2()
    ) {
        resourse1.show()
        resourse2.show()
    }
}

二、小结

本章为大家详细的介绍了仓颉编程语言中异常处理练习题的内容,下一章,为大家带来文件操作的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐