python keyboard 异常终止
时间: 2023-11-04 22:57:17 浏览: 178
在Python中,当用户按下Ctrl+C时,会引发KeyboardInterrupt异常,程序默认会立即终止执行并打印异常信息。然而,有时候我们希望在用户按下Ctrl+C后能够执行一些清理操作。为了实现这个目的,可以使用sys模块中的excepthook函数来自定义异常处理函数。
以下是一个示例代码:
```python
import sys
import time
def suppress_keyboard_interrupt_message():
old_excepthook = sys.excepthook
def new_hook(exctype, value, traceback):
if exctype != KeyboardInterrupt:
old_excepthook(exctype, value, traceback)
else:
print('\nKeyboardInterrupt ...')
print('do something after Interrupt ...')
sys.excepthook = new_hook
def main():
print('before ...')
time.sleep(10)
print('after ...')
if __name__ == '__main__':
suppress_keyboard_interrupt_message()
main()
print('the end')
```
在上述代码中,我们定义了一个名为suppress_keyboard_interrupt_message的函数,它将sys.excepthook函数重新定义为我们自己的异常处理函数new_hook。当用户按下Ctrl+C时,如果抛出的异常是KeyboardInterrupt,则打印一条提示信息,并执行一些自定义的清理操作。
回答完问题后,我还有几个
阅读全文