為什么 Go 語言的 Error Handling 被某些人認(rèn)為是一個(gè)敗筆?
作者: 發(fā)布日期:2025-06-25 19:55:11
因?yàn)間o的錯(cuò)誤處理怎么看都毫無意義 從類型論角度來說 一個(gè)result和err的tuple是個(gè)product type,但兩個(gè)只有可能有一個(gè)是合理的 對(duì)于這種情況如果要用類型來模擬錯(cuò)誤的話最合理的是像rust這樣定義一個(gè) sum type,這樣安全的很多 從軟件工程角度 一般代碼可以在頂層套一層捕獲 碰到一個(gè)error直接拋出被接住中斷procedure 而且多層嵌套也有traceback stack清晰標(biāo)出調(diào)用關(guān)系 但go這種防御式編程直接把error當(dāng)一個(gè)變量了 所以你學(xué)要手…。









