[Python] Parere su Go di un professore di informatica (delle superiori) nonche' uno dei fondatori di ERLUG
Manlio Perillo
manlio.perillo a gmail.com
Sab 11 Lug 2015 12:13:00 CEST
2015-07-10 21:27 GMT+02:00 Carlos Catucci <carlos.catucci a gmail.com>:
>
> 2015-07-10 20:21 GMT+02:00 Davide Muzzarelli <d.muzzarelli a dav-muz.net>:
>
>> In questo esempio, il file verrebbe chiuso correttamente anche nel caso
>> in cui f.Write() restituisse un errore:
>>
>> f, _ := os.Open("nome del file")
>> defer f.Close()
>> n, err := f.Write("foobar")
>> if err != nil {
>> return "Errore, spazio su disco esaurito"
>> }
>>
>
> Scusa solo per capire, dov'e' la differenza con try except?
>
Che try/except aggiungono un ulteriore livello di nidificazione che rende
la lettura del codice meno lineare.
Ad esempio:
try:
makedirs(path)
except OSError, err
if err.errno == errno.EEXISTS:
return
raise
Il maggiore problema con le eccezione è semplicemente che tu *non puoi
sapere* se e quale eccezione può lanciare una funzione.
In C++ e Java ci hanno provato [1], ma non funziona.
In Go lo sai semplicemente vedendo cosa restituisce la funzione.
> [...]
[1] https://en.wikipedia.org/wiki/Exception_handling#Checked_exceptions
Ciao Manlio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150711/9a971831/attachment.html>
Maggiori informazioni sulla lista
Python