Gestire le eccezioni in Swift
Swift ha diversi modi, tra quelli standard, di gestire le eccezioni.
In questo articolo vediamo qualche esempio; in un prossimo articolo vederemo come "creare" delle eccezioni custom.
Supponiamo di voler stampare il contenuto HTML di una pagina.
Il primo esempio è questo:
import Foundation
let url = "https://www.mattepuffo.com"
if let content = URL(string: url) {
let html = try! String(contentsOf: content)
print(html)
}
Con try! stiamo indicando che siamo sicuri che quell'url esiste.
Diciamo che in alcuni casi può essere corretto, ma è sempre meglio indicargli un'alternativa:
import Foundation
let url = "https://www.mattepuffo.com"
if let content = URL(string: url) {
let html = try? String(contentsOf: content)
print(html)
}
Con try? gli stiamo praticamente dicendo di provare; nel caso di url errato ci verrà riportato nil.
Volendo possiamo fornire noi l'alternativa:
import Foundation
let url = "https://www.mattepuffo.com"
if let content = URL(string: url) {
if let html = try? String(contentsOf: content) {
print(html)
} else {
print("URL errato")
}
}
Infine possiamo usare il blocco do/try/catch, più familiare ad altri linguaggi:
import Foundation
let url = "https://www.mattepuffo.com"
if let content = URL(string: url) {
do {
let html = try String(contentsOf: content)
print(html)
} catch let err as NSError {
print(err.code)
print(err.localizedDescription)
}
}
Per ogni esempio fate le prove mettendo un url errato.
Enjoy!
swift try catch
Commentami!