Il giorno mar 11 lug 2017 alle ore 15:12 Marco Beri <marcob...@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.
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a