[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