【问题标题】:Cleaner way to handle thrown exceptions from NS libraries in Swift assignments?在 Swift 作业中处理 NS 库抛出的异常的更简洁方法?
【发布时间】:2023-02-06 00:23:43
【问题描述】:

我在我的 Swift 代码中使用 NSRegularExpression,因为它需要在旧平台上运行。工厂方法抛出错误,所以我们需要捕获错误——这确实发生在我的代码中(我输入了一些疯狂的模式)。我称之为使用:

let regex: NSRegularExpression
do {
   regex = try NSRegularExpression(pattern: pattern, options: [.caseInsensitive])
} catch {
    return false
}

对于处理可选值,Swift 提供了 guard let 模式,这使得这一点更加清晰和自我记录,因为它将变量暴露给封闭范围并单行逻辑。 guard case 也很有用。 throws 有一些类似的语法糖吗?

【问题讨论】:

  • 不确定“清洁工”是什么意思,do/catch 有什么问题?如果您不关心这个错误,您可以将if letguardtry? 一起使用。

标签: swift exception


【解决方案1】:

你可能是说

guard let regex = try? NSRegularExpression(...) else { return false }

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 2017-10-25
    • 2014-09-03
    • 2014-11-24
    • 2012-12-27
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多