2026-08-26
存不下來,不該擋住結果
檔案寫失敗是我的問題,不是你的
這個遊戲有一部分程式是從我另一個手沖工具 app 搬過來的。搬過來的東西 編得過、跑得動,看起來沒事。
其中一段是這樣寫的:一場結束之後把紀錄存下來,存不成功就直接停在那裡。
在工具裡那是對的
工具的產品就是那筆資料。萃取時間、粉水比、你當時記了什麼——存不下來, 後面整條回顧的路都沒有意義。停住並且大聲說「沒存到」,是對使用者負責。
那個寫法叫 fail-closed:出事就關門。用在資料上通常是對的。
在遊戲裡它擋住的是一句話
這裡沒有那筆資料要保護。九十秒結束之後要發生的事只有一件:
畫面上出現「今天世界沒有毀滅。」
而那段搬過來的程式會在磁碟寫失敗的時候,把這句話擋掉。
你剛剛安靜了九十秒,然後因為我的檔案系統出了問題,你什麼都沒看到。 寫檔失敗是我的問題,不是你的。
改法很小
現在是:錯誤照樣報出來,但不擋結算。存不下來就存不下來,那句話 照樣給你。
改的程式只有幾行。難的是發現它需要改——它能編譯、能跑,在原本的專案裡 也還是對的。