主题
自定义错误类型
Swift 允许开发者自定义错误类型,通过枚举实现更清晰的错误分类和处理。
定义自定义错误
创建符合 Error
协议的枚举,列举具体错误情况:
swift
enum LoginError: Error {
case invalidUsername
case invalidPassword
case networkUnavailable
}
抛出自定义错误
在函数中使用 throw
抛出对应错误:
swift
func login(username: String, password: String) throws {
guard username == "admin" else {
throw LoginError.invalidUsername
}
guard password == "123456" else {
throw LoginError.invalidPassword
}
// 模拟网络不可用
throw LoginError.networkUnavailable
}
处理自定义错误
使用 do-catch
捕获并处理错误:
swift
do {
try login(username: "user", password: "123456")
} catch LoginError.invalidUsername {
print("用户名无效")
} catch LoginError.invalidPassword {
print("密码错误")
} catch LoginError.networkUnavailable {
print("网络不可用")
} catch {
print("未知错误")
}
自定义错误类型提高错误表达的准确性和代码可维护性。