主题
try? 与 try!
Swift 提供了两种简化错误处理的方式:try?
和 try!
,适用于不同场景。
try?
try?
将抛出错误的表达式转换为可选值,如果抛错返回 nil
,否则返回正常结果。
swift
func loadData() throws -> String {
// 可能抛出错误
return "数据"
}
let result = try? loadData()
if let data = result {
print("加载成功:\(data)")
} else {
print("加载失败")
}
适合错误可以忽略或无需详细处理的场景。
try!
try!
表示确定不会抛错,直接执行,如果出错程序将崩溃。
swift
let data = try! loadData()
print(data)
适合错误几乎不可能发生,或愿意让程序因错误崩溃的场景,使用时需谨慎。
总结
try?
安全,返回可选,适合容错处理。try!
不安全,直接执行,适合确保无错误的代码。
合理选择 try?
和 try!
,提高代码健壮性与简洁性。