Hur man ignorerar ett undantag och fortsätter i python


Bästa svaret

Först och främst, låt oss vara tydliga att ignorera undantag ofta inte är rätt sak att göra.

Det klassiska sättet att göra det är att bara acceptera undantaget och skicka:

>>> def remover(filename):

... import os

... try:

... os.remove(filename)

... except FileNotFoundError:

... pass

...

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

>>>

Du kan också använda a contextlib.suppress () för att ignorera undantag:

>>> def remover(filename):

... import os

... import contextlib

... with contextlib.suppress(FileNotFoundError):

... os.remove(filename)

...

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

>>>

Om du antar att du inte bryr dig om filen y du försöker ta bort existerar eller inte, något liknande ovan är bra. Men jag har sett en alarmerande tendens att antingen 1) ignorera undantag som betyder något, eller 2) fånga fler undantag än vad du faktiskt förväntar dig (effektivt dölja potentiella buggar).

Svar

Godkännande

Nej, skicka inte frågan.

Försök:

Något som kan misslyckas

Förutom det specifika undantaget:

Godkänn

Men kommentera varför pass är vettigt för nästa person att läsa din kod. Jag gör det ibland för filer och saker som kan saknas. Fånga dock inte alla fel, bara den du förväntar dig att ibland ska hända.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *