Czy w Pythonie można mieć wiele except
instrukcji dla jednej try
instrukcji? Jak na przykład :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
Czy w Pythonie można mieć wiele except
instrukcji dla jednej try
instrukcji? Jak na przykład :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
Odpowiedzi:
Tak to mozliwe.
try:
...
except FirstException:
handle_first_one()
except SecondException:
handle_second_one()
except (ThirdException, FourthException, FifthException) as e:
handle_either_of_3rd_4th_or_5th()
except Exception:
handle_all_other_exceptions()
Zobacz: http://docs.python.org/tutorial/errors.html
Słowo kluczowe „as” służy do przypisania błędu do zmiennej, dzięki czemu można dokładniej zbadać błąd w kodzie. Zauważ też, że nawiasy dla potrójnego przypadku wyjątku są potrzebne w Pythonie 3. Ta strona zawiera więcej informacji: Złap wiele wyjątków w jednym wierszu (oprócz bloku)
except (SomeError, OtherError):
. Nie odpowiada na pytanie OP, ale może pomóc niektórym osobom, które dostaną się tutaj przez Google.
except Exception:
zamiast zwykłego except:
. (Zwykły, z wyjątkiem, że złapie nawet, SystemExit
a KeyboardInterrupt
który zwykle nie jest tym, czego chcesz)
e
również, ponieważ