您好,登錄后才能下訂單哦!
在Swift中,異常處理是通過使用do-catch
語句來實現的
do-catch
語句捕獲異常:do {
// 嘗試執行可能拋出異常的代碼
} catch {
// 處理異常
}
catch
塊中處理異常:do {
// 嘗試執行可能拋出異常的代碼
} catch let error as NSError {
// 處理特定類型的異常,例如NSError
print("Error: \(error.localizedDescription)")
} catch {
// 處理其他類型的異常
print("Unexpected error: \(error)")
}
throw
拋出自定義異常:enum CustomError: Error {
case invalidInput
case fileNotFound
}
func processFile(filename: String) throws -> String {
// 嘗試執行可能拋出異常的代碼
if filename.isEmpty {
throw CustomError.invalidInput
}
// 讀取文件內容
guard let filePath = Bundle.main.path(forResource: filename, ofType: "txt") else {
throw CustomError.fileNotFound
}
let content = try String(contentsOfFile: filePath, encoding: .utf8)
return content
}
defer
語句確保資源被正確釋放:func processFile(filename: String) throws -> String {
defer {
// 確保在函數返回之前釋放資源
}
// 嘗試執行可能拋出異常的代碼
}
try?
進行隱式異常捕獲:if let result = try? processFile(filename: "example.txt") {
print("File content: \(result)")
} else {
print("Error processing file")
}
try catch
組合捕獲多種異常:do {
let result = try processFile(filename: "example.txt")
print("File content: \(result)")
} catch CustomError.invalidInput {
print("Invalid input error")
} catch CustomError.fileNotFound {
print("File not found error")
} catch {
print("Unexpected error: \(error)")
}
通過以上策略,您可以在Swift代碼中有效地處理異常,確保程序的穩定性和健壯性。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。