假设我在Python中有这段代码:
while True:
try:
raise CustomError
except CustomError:
# Action1
except KeyboardInterrupt:
# Action2
我希望每当CustomError
发生时,Action1都会处理它。但是,当且仅当我有一个KeyboardInterruptError
,然后Action2发生(即使仍然提出CustomError
)。现在在我的代码中发生的是Action1
总是发生,如果用户按CTRL + C,代码忽略它,仍然发生Action1
。
如果有人可以帮我解决这个问题,我将不胜感激。
谢谢!
关于时间安排你无能为力;如果在输入Control-C之前提高CustomError
,那么Action1
至少会开始。但是,看起来你想要两个try
语句,一个嵌套在另一个中:
try:
try:
raise CustomError
except CustomError:
Action1
except KeyboardInterrupt:
Action2
这样可以确保在内部try
子句或CustomError
处理程序中控件发生时捕获并处理键盘中断。