当代码中发生错误时,我们可以使用
throw
关键字抛出错误,try
关键字来尝试运行可能会抛出错误的代码,do catch
关键字来捕获并处理错误。
//定义了一个 `CustomError` 枚举类型,它遵循 `Error` 协议
enum CustomError: Error {
case invalidInput
case networkError
}
//定义了一个 `fetchDataFromServer` 函数
func fetchDataFromServer(url: String) throws -> String {
guard let url = URL(string: url) else {
throw CustomError.invalidInput
}
let data = try Data(contentsOf: url)
guard let result = String(data: data, encoding: .utf8) else {
throw CustomError.networkError
}
return result
}
do {
let result = try fetchDataFromServer(url: "https://example.com")
print(result)
} catch CustomError.invalidInput {
print("Invalid input URL")
} catch CustomError.networkError {
print("Network error occurred")
} catch {
print("Unknown error occurred: \(error)")
}
// Network error occurred