Swift 中,throw、try 和 do catch 是用于处理错误和异常的关键字

727 阅读1分钟

当代码中发生错误时,我们可以使用

  • 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