2015-07-10 21:27 GMT+02:00 Carlos Catucci <carlos.catu...@gmail.com>:

>
> 2015-07-10 20:21 GMT+02:00 Davide Muzzarelli <d.muzzare...@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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a