【问题标题】:How to catch the Control-C exception in a Visual C++ console app?如何在 Visual C++ 控制台应用程序中捕获 Control-C 异常?
【发布时间】:2009-07-21 01:52:13
【问题描述】:

这看起来应该很简单,但我已经尝试过
try {} catch (...) {} C++ 异常处理和
__try {} __finally {} 结构化异常处理 (SEH)
当您使用 Control-C 应用程序时,任何人都不会捕捉到发生的异常。

我真的没想到 C++ 异常处理会这样做,因为 Control-C 是一个系统类型的信号,而不是由 C++ throw() 引起的,但是当 SEH 不起作用时,我还是尝试了它。

如果我在调试器下运行,它表明 Control-C 引发了第一次机会异常,但是当它被重新抛出时,我的处理程序永远不会被调用。

【问题讨论】:

  • 也不例外,这叫中断。
  • @Daniel 是的,从技术上讲,微软应该称之为结构化中断处理,但他们没有。 Po-tAY-to Po-tAH-to.

标签: exception-handling


【解决方案1】:

这是在 Win32 中处理中断的方法。

http://msdn.microsoft.com/en-us/library/ms686016%28VS.85%29.aspx

【讨论】:

  • 谢谢,丹尼尔。我花了至少一个小时用不同的搜索引擎搜索 MSDN,但没有找到。
猜你喜欢
  • 1970-01-01
  • 2010-09-15
  • 2012-03-17
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 1970-01-01
相关资源
最近更新 更多