在 C++ 中抛出运行时警告

dan*_*jar 5 c++ warnings exception robustness

几周前我开始使用异常,现在我想知道是否有一种方法可以抛出警告。如果未捕获此警告,则不应强制应用程序退出。我会给你一个例子,在什么情况下我想使用它。

有一个系统可以将属性附加到唯一的 ID 上。当我以某种方式尝试向尚不存在的 id 添加属性时,系统应该在内部为我创建该 id,然后向其中添加属性并返回结果。当然,这不能悄然进行。但由于应用程序可以保持运行,我不想抛出异常。

我怎样才能通知某些事情不太正确,但系统仍在运行?

Oli*_*rth 7

您想通知谁?最终用户?在这种情况下,只需向 写入一条合适的消息即可cerr。或者更好的是,编写一个包装函数(例如LOG_WARNING())以受控方式执行此操作。或者更好的是,使用日志框架


但由于应用程序可以保持运行,我不想抛出异常。

请注意,异常不一定会导致应用程序终止。您可以捕获堆栈上方的异常,并适当地处理这种情况。