大家好,我的开源项目PakePlus可以将网页/Vue/React项目打包为桌面/手机应用并且小于5M只需几分钟,官网地址:pakeplus.com
try? 将可能抛出的错误转换为可选值(Optional):
如果操作成功:返回包装在 Optional 中的结果
如果操作失败(抛出错误):返回 nil
传统的错误处理(do-try-catch):
do {
let result = try someThrowingFunction()
print("成功: \(result)")
} catch {
print("失败: \(error)")
}
使用 try?:
let result = try? someThrowingFunction()
if let result = result {
print("成功: \(result)")
} else {
print("失败")
}
示例1:JSON 解析
struct User: Codable {
let name: String
let age: Int
}
let jsonString = """
{"name": "张三", "age": 25}
"""
// 传统方式
do {
let data = jsonString.data(using: .utf8)!
let user = try JSONDecoder().decode(User.self, from: data)
print("用户: \(user.name)")
} catch {
print("解析失败: \(error)")
}
// 使用 try?
if let data = jsonString.data(using: .utf8),
let user = try? JSONDecoder().decode(User.self, from: data) {
print("用户: \(user.name)") // 成功时执行
} else {
print("解析失败") // 失败时执行
}
大家好,我是1024小神,技术群 / 私活群 / 股票群 或 交朋友 都可以私信我。
如果你觉得本文有用,一键三连 (点赞、评论、关注),就是对我最大的支持~