Re: [Python] Gestire più errori con lo stesso blocc except.
Il giorno 12 luglio 2017 09:45, Massimiliano della Rovere < massimiliano.dellarov...@gmail.com> ha scritto: > > > Il giorno mar 11 lug 2017 alle ore 15:12 Marco Beri > 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 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire più errori con lo stesso blocc except.
Il giorno mar 11 lug 2017 alle ore 15:12 Marco Beri 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
Re: [Python] Gestire più errori con lo stesso blocc except.
2017-07-11 23:30 GMT+10:00 Marco Beri : > 2017-07-11 15:21 GMT+02:00 Daniele Zambelli : > >> >> Ovviamente sì! Sono stordito :-) > ommamma 3 () lol -- Karim N. Gorjux ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire più errori con lo stesso blocc except.
2017-07-11 15:21 GMT+02:00 Daniele Zambelli : > Il 11 luglio 2017 15:11, Marco Beri ha scritto: > > > [...] > > Piuttosto è possibile fare questo: > > > > try: > > qualcosa() > > except KeyError as exc: > > ommamma1() > > except KeyError as exc: > > ommamma2() > > Dove il secondo "KeyError" va inteso come un errore diverso ad esempio: > > "NameError" > > se ho capito bene. > Ovviamente sì! Sono stordito :-) Grazie Daniele. Ciao. Marco. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire più errori con lo stesso blocc except.
Il 11 luglio 2017 15:11, Marco Beri ha scritto: > [...] > Piuttosto è possibile fare questo: > > try: > qualcosa() > except KeyError as exc: > ommamma1() > except KeyError as exc: > ommamma2() Dove il secondo "KeyError" va inteso come un errore diverso ad esempio: "NameError" se ho capito bene. Ciao -- Daniele www.fugamatematica.blogspot.com giusto! nel verso forse è perché non guardiamo le cose Quando non ci capiamo, ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire più errori con lo stesso blocc except.
2017-07-11 14:24 GMT+02:00 Massimiliano della Rovere < massimiliano.dellarov...@gmail.com>: > try: > qualcosa() > except (KeyError, TypeError): > ommamma() > > Le eccezioni nell'iterabile sono valutate da sx a dx, quindi classi di > eccezioni derivate da altre presenti nello stesso iterabile devono stare il > più a sinistra possibile. > 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() Ciao. Marco. P.S. Quoting! :-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire più errori con lo stesso blocc except.
try: qualcosa() except (KeyError, TypeError): ommamma() Le eccezioni nell'iterabile sono valutate da sx a dx, quindi classi di eccezioni derivate da altre presenti nello stesso iterabile devono stare il più a sinistra possibile. Il giorno mar 11 lug 2017 alle ore 14:05 Gabriele Battaglia < iz4...@libero.it> ha scritto: > Giorno. > E' possibile prevedere la gestione di più di un errore, con lo stesso > blocco Except? > Gabriele. > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Gestire più errori con lo stesso blocc except.
Giorno. E' possibile prevedere la gestione di più di un errore, con lo stesso blocco Except? Gabriele. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python