我的應用程序遇到磁盤滿錯誤,並且由於磁盤已滿而導致未處理的異常,導致調用set_terminate()
處理程序。如何檢測由於磁盤已滿而未處理的異常?
通常情況下,我會在日誌文件中得到某種堆棧跟蹤,所以我可以看到出了什麼問題,但是,在這種情況下,因爲磁盤已滿,沒有堆棧跟蹤記錄,並且不清楚程序因缺少磁盤空間而終止。
從最後寫入磁盤的東西中讀取我所能得到的東西,看起來std::clog
正在被寫入,它已被設置爲轉到磁盤(已滿)。
我想知道如果使用operator<<
寫入clog
可能會導致拋出異常,如果有的話可能拋出了什麼異常?
此外,我對如何改進我的應用程序的想法感興趣,以便如果這種情況在將來再次出現,我可能會更新我的應用程序,以留下更好的線索,以便我可以知道磁盤已滿,沒有其他應用程序的其他缺點。
但是,關鍵的問題是檢測失敗,沒有這個,如何緩解的想法是沒有用的。
我只能對磁盤空間舉行時,磁盤已滿,如果在寫點到磁盤我能察覺免費的磁盤,並允許寫成功,我釋放。這回到我的問題,寫入堵塞可能會引發什麼異常? – WilliamKF