在Python中,可以使用signal
模块来捕获和处理信号。下面是一个示例代码,展示如何捕获Ctrl+C信号并抛出异常"作业管理器已关闭"。
import signal
class JobManagerClosed(Exception):
pass
def handle_interrupt(signum, frame):
raise JobManagerClosed("作业管理器已关闭")
def main():
# 注册信号处理器
signal.signal(signal.SIGINT, handle_interrupt)
try:
# 运行你的代码
while True:
pass
except JobManagerClosed:
print("捕获到Ctrl+C信号,作业管理器已关闭")
if __name__ == "__main__":
main()
在上面的示例中,我们定义了一个自定义的异常类JobManagerClosed
,用于抛出"作业管理器已关闭"的异常。然后,我们定义了一个handle_interrupt
函数,用于处理Ctrl+C信号,并在其中使用raise
语句抛出自定义的异常。
在main
函数中,我们首先使用signal.signal
函数注册了对Ctrl+C信号的处理函数。然后,在主循环中,我们运行你的代码。如果捕获到Ctrl+C信号,就会触发JobManagerClosed
异常,然后我们可以在异常处理块中进行相应的处理。
请注意,在Windows操作系统上,Ctrl+C信号被映射为SIGBREAK
,可以使用signal.SIGBREAK
来注册对应的信号处理函数。
上一篇:捕获CTEs的正则表达式
下一篇:捕获存储过程中的错误