[Python] Gestire più errori con lo stesso blocc except.

Gianluca Esposito giaespo a gmail.com
Mer 12 Lug 2017 10:39:32 CEST


Il giorno 12 luglio 2017 09:45, Massimiliano della Rovere <
massimiliano.dellarovere a gmail.com> ha scritto:

>
>
> Il giorno mar 11 lug 2017 alle ore 15:12 Marco Beri <marcoberi a gmail.com>
> ha scritto:
>
>>
>> Ma a che pro avere nell'iterabile due classi di eccezioni, una che
>> dipende dall'altra? Alla fine non ti basta quella più generica? Cosa mi
>> sfugge?
>>
>>
>> Piuttosto è possibile fare questo:
>>
>> try:
>>     qualcosa()
>> except KeyError as exc:
>>     ommamma1()
>> except KeyError as exc:
>>     ommamma2()
>>
>>
>> Supponi di avere una libreria che su un metodo può sollevare differenti
> eccezioni diverse e per entrambe devi effettuare la stessa azione. Invece
> di sciorinare più blocchi "except:" con lo stesso codice, le accorpi.
>
> Relativamente all'usare quella più generica, potrebbe essere troppo
> generica e ti fa gestire eccezioni che non vorresti prendere.
> Esempio: se devi trappare IndexError e KeyError, ok puoi usare
> LookupError; ma se vuoi IndexError e TypeError, il parente più prossimo ad
> entrambe è "Exception" generica, ma non vuoi usarla altrimenti l'except
> "assorbe" tutte le eccezioni.
>
> Penso che la domanda fosse diversa, cioè gestire Eccezioni genitore e
figli nello stesso blocco. Se hai Error1 ed Error2 con Error1 genitore di
Error2 e già gestisci nell'iterable Error1, non serve aggiungerci anche
Error2.

saluti,
Gianluca
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20170712/cb9eaf15/attachment-0001.html>


Maggiori informazioni sulla lista Python