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

Massimiliano della Rovere massimiliano.dellarovere a gmail.com
Mer 12 Lug 2017 09:45:42 CEST


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.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20170712/9a2eb644/attachment.html>


Maggiori informazioni sulla lista Python