Dois-je tester if
quelque chose est valable ou juste try
pour le faire et attraper l'exception ?
- Existe-t-il une documentation solide indiquant qu'une voie est préférable ?
- Est-ce qu'un moyen est plus pythonique ?
Par exemple, devrais-je :
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
Ou :
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Quelques réflexions...
PEP 20 dit :
Les erreurs ne doivent jamais passer en silence.
Sauf si elle est explicitement réduite au silence.
L'utilisation d'un try
au lieu d'un if
être interprété comme une erreur passant silencieusement ? Et si c'est le cas, est-ce que vous la réduisez explicitement au silence en l'utilisant de cette façon, ce qui la rend OK ?
Je suis no se référant à des situations où vous ne pouvez faire les choses que d'une seule façon ; par exemple :
try:
import foo
except ImportError:
import baz