Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Dubbio try except

alessioclemente (19640 points)
19 67 153
in Info sul corso e sugli esami by (19.6k points)
Salve, vorrei sapere quando è meglio usare i blocchi try except. Ho notato che spesso è molto comodo usarli, però credo non sia buona norma metterne tanti.
420 views

2 Answers

d
davide.scrimieri (2930 points)
5 16 39
by (2.9k points)

Per quale motivo non dovrebbe essere buona norma metterne "tanti"? quanti sono tanti? le eccezioni in linea di principio, almeno nel mondo lavorativo, vanno gestite, e chi non lo fa si prende uno scappellotto, perché quando vai in produzione hai degli errori che se sono gestiti superficialmente/velocemente ti creano dei grattacapi importantissimi ed interi pomeriggi passati tra log e codice (e straordinari non pagati).

Il try-except è bene. Non gestire le eccezioni/errori è male.

The Zen of Python, direttamente dalla sua pagina ufficiale dice:

https://www.python.org/dev/peps/pep-0020/

Errors should never pass silently.
Unless explicitly silenced.


alessioclemente (19640 points)
19 67 153
by (19.6k points)
Però, conviene sempre trovare un modo per NON farli apparire gli errori, no? Generare eccezioni non è pesante?
Xriuk (13590 points)
8 24 116
by (13.6k points)
Ti direi che le eccezioni più "leggere" (ad esempio l'indice di una lista che va fuori, o cose simili) sono da evitare il più possibile, niente try/except per quelle, quindi ricontrolla il codice e correggi.
Mentre altri tipi di eccezioni vanno gestite per bene, ad esempio: nel caso in cui tu debbe convertire una stringa in un intero con int() e la stringa passata non è un numero devi gestire la cosa (non parlo degli esercizi dell'homework dove si suppone sia tutto corretto e in linea con le descrizioni degli esercizi).
alessioclemente (19640 points)
19 67 153
by (19.6k points)
Mh, ho capito. Grazie a tutti e 2!