【发布时间】:2011-08-25 21:26:45
【问题描述】:
我基于一个有缺陷的开源库编写了一个 Linux 程序。这个库有时会触发我无法控制的段错误。当然,一旦库出现段错误,整个程序就会死掉。但是,即使库有段错误,我也必须确保我的程序继续运行。这是因为我的程序有点像“服务器”,它至少需要告诉客户发生了不好的事情并从错误中恢复,而不是退缩......有什么办法吗?
我理解在 Java 中只需要捕获一个异常。但是 C++ 是如何处理这个问题的呢?
[更新]我知道 C++ 中也有异常处理,但是 Segfault 不是异常,是吗?我认为发生段错误时不会抛出任何东西。你必须明确地“抛出”一些东西来使用 try.... catch.... 据我所知。
非常感谢,我对 C++ 很陌生。
【问题讨论】:
-
Google 是你的朋友 -> cplusplus.com/doc/tutorial/exceptions :)
-
嗨,卡洛斯。我理解这部分,但 Segfault 也不例外,是吗?我认为发生段错误时不会抛出任何东西。你必须明确地“抛出”一些东西来使用 try.... catch.... 据我所知。
-
有人为共同利益编写了开源库。您是需要它才能让您的程序正常工作的人。不幸的是,它包含使您的程序崩溃的缺陷(或一对)。那么为什么要寻找绕过缺陷的方法呢?你不能追踪并修复缺陷吗?解决缺陷总是比修复它们更难。您还可以将修复补丁发送给库的作者,从而使我们的世界变得更美好。
标签: c++ exception exception-handling segmentation-fault signals