Gestire le eccezioni in Swift

Mattepuffo's logo
Gestire le eccezioni in Swift

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!


Condividi

Commentami!