Hoe een uitzondering te negeren en verder te gaan in python


Beste antwoord

Laten we eerst duidelijk zijn dat het negeren van uitzonderingen vaak niet de juiste keuze is.

De klassieke manier om dit te doen is door de uitzondering te accepteren en door te geven:

>>> def remover(filename):

... import os

... try:

... os.remove(filename)

... except FileNotFoundError:

... pass

...

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

>>>

Je kunt ook een contextlib.suppress () om uitzonderingen te negeren:

>>> def remover(filename):

... import os

... import contextlib

... with contextlib.suppress(FileNotFoundError):

... os.remove(filename)

...

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

>>>

Ervan uitgaande dat het u niet echt kan schelen of het bestand y u probeert bestaande te verwijderen of niet, zoiets als het bovenstaande is prima. Maar ik heb een alarmerende neiging gezien om ofwel 1) uitzonderingen te negeren die ertoe doen, of 2) meer uitzonderingen op te vangen dan je eigenlijk verwacht (potentiële bugs effectief verbergen).

Antwoord

Geslaagd

Ga niet voorbij aan de vraag.

Probeer:

Iets dat kan mislukken

Behalve de specifieke uitzondering:

Pass

Maar geef alsjeblieft aan waarom pass zinvol is voor de volgende persoon om je code te lezen. Ik doe dit soms voor bestanden en dingen die mogelijk ontbreken. Vang echter niet elke fout op, alleen degene waarvan u verwacht dat deze soms voorkomt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *