Jak zignorować wyjątek i postępować w Pythonie


Najlepsza odpowiedź

Po pierwsze, wyjaśnijmy, że ignorowanie wyjątków często nie jest właściwe.

Klasycznym sposobem jest po prostu zaakceptowanie wyjątku i przejście:

>>> def remover(filename):

... import os

... try:

... os.remove(filename)

... except FileNotFoundError:

... pass

...

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

>>>

Możesz również użyć a contextlib.suppress () , aby zignorować wyjątki:

>>> def remover(filename):

... import os

... import contextlib

... with contextlib.suppress(FileNotFoundError):

... os.remove(filename)

...

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

>>>

Zakładając, że nie obchodzi cię, czy plik y Próbujesz usunąć istnieje lub nie, coś takiego jak powyższe jest w porządku. Ale zauważyłem niepokojącą tendencję do albo 1) ignorowania wyjątków, które mają znaczenie, albo 2) wyłapywania większej liczby wyjątków, niż faktycznie się spodziewasz (skutecznie ukrywając potencjalne błędy).

Odpowiedź

Zdaj

Nie, nie udzielaj odpowiedzi.

Spróbuj:

Coś, co może się nie udać

Z wyjątkiem konkretnego wyjątku:

Pomiń

Ale proszę skomentuj, dlaczego pass ma sens, aby następna osoba przeczytała Twój kod. Robię to czasami dla plików i rzeczy, których może brakować. Nie wychwytuj jednak każdego błędu, tylko tego, którego czasem się spodziewasz.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *