W skryptów Pythona, istnieje wiele przypadków, w których przerwanie klawiatury (Ctrl-C) nie zabić proces, bo z nagim except
klauzuli gdzieś w kodzie:Unikanie przypadkowego połowu KeyboardInterrupt i SystemExit w Pythonie 2.4
try:
foo()
except:
bar()
roztwór standardowy Pythona 2,5 lub wyższej, aby złapać Exception
zamiast przy użyciu nagich except
punktach:
try:
foo()
except Exception:
bar()
pracuje z tym, jak Pythona 2.5, KeyboardInterrupt
i SystemExit
dziedziczy po BaseException
, a nie Exception
. Jednak niektóre instalacje nadal działają w języku Python 2.4. W jaki sposób można rozwiązać ten problem w wersjach wcześniejszych niż Python 2.5?
(Idę sobie odpowiedzieć na to pytanie, ale wprowadzenie go tutaj, więc ludzie szukają może znaleźć rozwiązanie.)
Nie zadawaj pytań, aby samodzielnie na nie odpowiedzieć. SO nie jest wiki przypadkowych danych; to odpowiedzi na pytania, które ludzie faktycznie proszą *. –
@Glenn Maynard: Domyślam się, że jesteś w błędzie: http://meta.stackexchange.com/questions/12513/przejdź-nierozpocznij-poprośnij-pytania – Curd
Odpowiadając na własne pytanie, jeśli wymyślisz odpowiedź po zapytaniu w porządku. Zadając pytanie * tak, abyś mógł na nie odpowiedzieć * jest zupełnie inny. –