Wszystkie docs powiedzieć nam to,Kiedy w Punkcie Pytań podniesiono KeyboardInterrupt?
Raised gdy użytkownik wciśnie klawisz przerwania (zwykle
Control-C
lubDelete
). Podczas wykonywania, kontrola przerwania jest wykonywana regularnie.
Ale od od punktu kodu, kiedy mogę zobaczyć ten wyjątek? Czy występuje podczas wykonywania instrukcji? Tylko między wypowiedziami? Czy może się to zdarzyć w trakcie wypowiedzi?
Na przykład:
file_ = open('foo')
# <-- can a KeyboardInterrupt be raised here, after the successful
# completion of open but prior to the try? -->
try:
# try some things with file_
finally:
# cleanup
Czy ten wyciek kodu podczas dokładnego KeyboardInterrupt
? Czy jest on poruszany podczas wykonywania niektórych wypowiedzi lub wyrażeń?
Niestety, 'with' nie zawsze jest możliwe; czasami chcesz sprawdzić, czy wyrażenie w instrukcji with nie powiedzie się (np. czy podniosło konkretną eksplorację?) przed wywołaniem '__enter__'. Nie można tego zrobić za pomocą 'with', ponieważ tracisz zdolność do zawijania wyrażenia bez owijania ciała' with'. (Które, jeśli może wywołać ten sam typ wyjątku, co wyrażenie warunkowe, oznacza, że nie można ich odróżnić w 'wyjściu'.) – Thanatos