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