我嘗試做的是
...
let path: URL? = URL(string: "")
do {
let data = try Data(contentsOf: path!)
}
catch {
print("ERROR: \(error)")
}
...
我知道這段代碼不起作用,但我期望的是在 catch 塊中捕獲錯誤,而不是我得到一個運行時例外并崩潰。
uj5u.com熱心網友回復:
試試這個
..
if let path = URL(string: "someStringForUrl") {
do {
let data = try Data(contentsOf: path)
}
catch {
print("ERROR: \(error)")
}
}
...
uj5u.com熱心網友回復:
你永遠達不到try,所以你永遠達不到catch。在這一切發生之前,path!強制解包失敗并導致應用程式崩潰。
(使應用程式崩潰是運行時例外,這與 Swifttry/catch機制完全不同。它沒有“覆寫所有運行時例外”;它沒有覆寫任何運行時例外。你把蘋果和大象混為一談了;它們完全不相關。運行時例外不是拋出捕獲的錯誤物件,反之亦然。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409124.html
標籤:
