Hvordan ignorere et unntak og fortsette i python


Beste svaret

Først og fremst, la oss være klare på at det ofte ikke er riktig å ignorere unntak.

Den klassiske måten å gjøre det på er å bare godta unntaket og passere:

>>> def remover(filename):

... import os

... try:

... os.remove(filename)

... except FileNotFoundError:

... pass

...

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

>>>

Du kan også bruke a contextlib.suppress () for å ignorere unntak:

>>> def remover(filename):

... import os

... import contextlib

... with contextlib.suppress(FileNotFoundError):

... os.remove(filename)

...

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

>>>

Forutsatt at du ikke bryr deg om filen y Du prøver å fjerne eksisterer eller ikke, noe som det ovennevnte er greit. Men jeg har sett en alarmerende tendens til å enten 1) ignorere unntak som betyr noe, eller 2) fange flere unntak enn du faktisk forventer (effektivt skjule potensielle feil).

Svar

Bestått

Nei passerer ikke spørsmålet.

Prøv:

Noe som kan mislykkes

Unntatt det spesifikke unntaket:

Pass

Men vennligst kommenter hvorfor pass er fornuftig for neste person å lese koden din. Jeg gjør dette noen ganger for filer og ting som kan mangle. Ikke ta tak i alle feil, bare den du forventer at noen ganger vil skje.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *