跳到主要内容

try? 和 try!是什么意思?

参考答案:

try?try! 是 Swift 语言中的错误处理机制中的一部分。在 Swift 中,错误处理是通过抛出、捕获和处理错误来实现的。这两个操作符在错误处理中有特定的用途。

  1. try?:

try? 表达式用于尝试执行可能会抛出错误的操作,并忽略任何抛出的错误。如果操作成功,则返回该操作的结果;如果操作失败并抛出错误,则 try? 表达式的结果将是 nil

示例:

let optionalResult = try? someThrowingFunction()
if let result = optionalResult {
    // 使用 result
} else {
    // 处理错误(尽管不知道具体是什么错误)
}

使用 try? 时,你放弃了获取关于具体错误的详细信息的能力,因为所有错误都被转换为 nil。 2. try!:

try! 表达式用于强制执行可能会抛出错误的操作,并假设该操作不会失败。如果操作成功,则返回该操作的结果;如果操作失败并抛出错误,则程序会崩溃并显示运行时错误。

示例:

let result = try! someThrowingFunction()
// 使用 result

使用 try! 时,你必须非常确定该操作不会失败,或者你愿意让程序在失败时崩溃。这通常用于初始化代码,其中任何失败都是不可恢复的,并且表明程序配置有问题。

总的来说,try?try! 提供了处理可能抛出错误的操作的简便方法,但使用时需要谨慎,确保它们符合你的错误处理策略。在大多数情况下,更推荐使用 do-catch 语句来显式地捕获和处理错误,以提供更详细和灵活的错误处理机制。