【发布时间】:2012-12-27 21:58:25
【问题描述】:
我的应用程序遇到磁盘已满错误,不知何故,由于磁盘已满,引发了未处理的异常,导致调用了 set_terminate() 处理程序。
通常,我会在我的日志文件中获得某种堆栈跟踪,这样我就可以看到出了什么问题,但是,在这种情况下,由于磁盘已满,没有记录堆栈跟踪,并且不清楚程序由于磁盘空间不足而终止。
从最后写入磁盘的内容中读取我所能读取的内容,似乎std::clog 正在被写入,已设置为写入磁盘(已满的那个)。
我想知道使用operator<< 写入clog 是否会导致抛出异常,如果是,可能会抛出什么异常?
此外,我对如何改进我的应用程序的想法很感兴趣,以便如果这种情况在未来再次发生,我可能会更新我的应用程序,以便更好地跟踪到底出了什么问题,这样我就可以知道磁盘已满,而不是应用程序的其他缺点。
但是,关键问题是检测故障,否则,如何缓解的想法就毫无用处。
【问题讨论】:
标签: c++ unhandled-exception clog