我应该注册一个SEH处理程序并在我的库中捕获CPU异常吗?

时间:2016-11-11 11:50:23

标签: c++ windows exception-handling seh

我的库有自定义异常类。我想知道是否应该注册SEH处理程序并捕获CPU异常,例如访问冲突,非法指令,除以零。然后,我可以向我的库的客户端报告这些CPU异常。

1 个答案:

答案 0 :(得分:1)

除非您正在编写一个真正需要的特定系统相关库,否则您不应该注册SEH处理程序。如果这样做,则会将错误隐藏到应用程序中。

第一条规则应该是不处理SEH例外,并允许应用程序在配置时执行它。

但是如果你期望程序可能因为调用你的库时出现异常而崩溃(例如,因为它调用了你知道可能引发异常的外部API),你必须评估它是否值得抓住它们采取任何行动(如报告错误)。但在这种情况下,请尽量限制异常保护的范围和过滤器。

如果系统异常是由您自己的代码引起的,则不应将其隐藏,并且应尽快修复它们。

相关问题