Sådan ignoreres en undtagelse og fortsætter i python


Bedste svar

Lad os først være klar over, at ignorering af undtagelser ofte ikke er den rigtige ting at gøre.

Den klassiske måde at gøre det på er at acceptere undtagelsen og videregive:

>>> def remover(filename):

... import os

... try:

... os.remove(filename)

... except FileNotFoundError:

... pass

...

>>> remover("non-existent file")

>>>

Du kan også bruge a contextlib.suppress () for at ignorere undtagelser:

>>> def remover(filename):

... import os

... import contextlib

... with contextlib.suppress(FileNotFoundError):

... os.remove(filename)

...

>>> remover("non-existent file")

>>>

Forudsat at du ikke er ligeglad med, om filen y I prøver på at fjerne eksisterer eller ej, noget som det ovenstående er fint. Men jeg har set en alarmerende tendens til at enten 1) ignorere undtagelser, der betyder noget, eller 2) fange flere undtagelser, end du faktisk forventer (effektivt skjule potentielle fejl).

Svar

Pass

Nej ved ikke spørgsmålet.

Prøv:

Noget, der muligvis mislykkes

Undtagen den specifikke undtagelse:

Pass

Men bedes du kommentere hvorfor pass giver mening for den næste person at læse din kode. Jeg gør det nogle gange for filer og ting, der muligvis mangler. Fang dog ikke alle fejl, bare den, du forventer at nogle gange vil ske.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *