Go Wiki:Go2ErrorHandlingFeedback
針對 Go 2 錯誤處理的意見回饋討論草稿設計
此頁面用於收集和整理從 Go 2 錯誤處理討論草稿設計所開始的意見回饋和討論。
請在您的部落格、Medium、GitHub Gists、郵寄清單、Google 文件等發表您的意見回饋。然後請在此連結。
請協助分類最下方未分類的提案。
2019 年 6 月 19 日更新 – 根據此意見回饋,我們已張貼了一個 try 內建函式的提案,並在 #32437 上獲得大量意見回饋 (串流檢視在此)。
我們已停用此問題的留言至 7 月 1 日,讓大家有時間使用自己的程式碼實作。我們非常希望能看到使用一般 try 方式在您自己的程式碼的經驗回報,包括透過 tryhard 的試驗轉換。謝謝!
對 「try 提案」 的經驗
加入此清單
- 範本:您的姓名,「標題」,YYYY 年 MM 月
需求
針對新錯誤處理方法需求的討論。
-
Warren Stephens,〈Go 2
handle
應提供行號、原始檔檔名、版本〉, 2018 年 12 月 -
Liam Breck,〈Go 2 錯誤處理的考量事項〉, 2018 年 9 月
-
jimmyfrasche,〈不要特例化錯誤或 nil〉, 2018 年 9 月
-
Matt Dee,〈錯誤處理應支援自訂的錯誤類型〉, 2018 年 8 月
-
Ian Lance Taylor,〈未完成的準則清單〉, 在 GitHub 提案討論中發布, 2018 年 5 月
-
Rob Pike (@matjam 發布),〈簡單很複雜〉, 2015 年 12 月
支持
這包含在不變更的情況下,支援現有的處理程序鏈接/堆疊。
-
Tokyo Gophers,〈Go 2 回饋事件中對支援意見的評論〉, 2018 年 10 月
-
Adam Bouhenguel,〈支持更具宣告式錯誤處理〉, 2018 年 8 月
-
Daniel Theophanes,〈Go 2 設計:錯誤處理的淨收穫〉, 2018 年 8 月
-
Alexandru-Paul Copil,〈支持,並提出輕微修改和考量事項〉, 2021 年 9 月
範例程式碼
程式碼已變更為使用現有的提案。
-
Daniel Milde,〈在 gdu 中使用檢查處理草案語法〉, 2021 年 5 月
-
Mateusz Czapliński,〈將一段真實處理錯誤的程式碼轉換為 Go 2「設計草案」〉, 2018 年 8 月
-
Blake Mizerany,〈在使用檢查/處理時,最佳的處理局部寫入方式〉, 2018 年 8 月
反對
沒有提出反提案的批評
-
Pasha Osipyants,〈使用目前 Go 實現的錯誤處理機制〉, 2019 年 2 月
-
匿名,〈Go 2 錯誤處理非提案〉, 2018 年 10 月
-
Stripe 開發人員,〈關於 Go 2 草案設計的回饋〉, 2018 年 10 月
-
東京 Gophers、「Go 2 フィードバック イベントのコメントに対する意見」、2018 年 10 月
-
Liam Breck、「Golang、勝手に自分のチェックを処理するなんて許せない!」、2018 年 9 月
-
Nate Finch、「Handle と Check は、やめておきましょう」、2018 年 9 月
-
Jozef Slezak、「新しいキーワードの代わりにセミコロンを使用する: check+handle」、2018 年 9 月
-
Shannon Wynter、「既にできるようにエラー処理をする」、2018 年 8 月
繰り返されるテーマ
以下の提案の中で、繰り返し出現する概念です。
-
代入によってハンドラーを呼び出す。例:
v, ? := f()
参照: 1、2、3、4、5、6、7、8、9、10、11、12、13、14 -
名前で複数のハンドラーの 1 つを呼び出す。例:
v := check f() ? name
參考資料:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
適度的修訂
-
劉雷東,「a, b, !checkError := Sub(…)」,2019 年 11 月
-
靳鋒,「[沒有處理程序的 Go 2 錯誤處理簡化解決方案],(https://gist.github.com/jfeng45/416d4ecb42a4df50bebf86ce1c41c668)",2019 年 7 月
-
Dave Arnold,「將特殊檢查關鍵字移到指派的左側」,2019 年 4 月
-
Rockmen,「添加處理程序和 ? 作為語法糖也許」,2018 年 12 月
-
Steve Manuel,「Go 2
處理程序
陳述式以選擇性地使用類型轉換」,2018 年 10 月 -
Zlatko Bratkovic,「支持微小變更」,2018 年 10 月
-
DeedleFake,「可能解決綴連方法呼叫的
檢查
尷尬」,2018 年 9 月 -
張葉殊,「傳遞檢查和處理參數,自訂處理程序」,2018 年 9 月
-
Viktor Kojouharov,「減少新錯誤設計草案中的特殊處理」,2018 年 9 月
-
Aleksei Pavliukov,「使用函數作為處理參數」,2018 年 9 月
-
Savino Pio Liguori,「Go2 錯誤處理設計的回饋」,2018 年 8 月
-
Jeffrey Koehler,「支持處理程序串連;關於檢查」,2018 年 8 月
-
Garrus:「錯誤處理的另一種語法糖風格」,2018 年 8 月
-
Paul Borman:「反對 Go 2 錯誤處理提案的論點」,2018 年 8 月
-
krhubert:「測試用錯誤預設處理常式」,2019 年 5 月
-
Franz,實現錯誤處理就像變數的不變項檢查。當值變更時,就會呼叫函式。然後這也可以用於其他情況。
-
Brandon Heenan:「簡潔且具有更明顯的控制流程」,2021 年 5 月
移除處理常式鏈
-
Markus Heukelom:「提案:使用
guard
和must
關鍵字來改善錯誤處理」,2019 年 4 月 -
Alessandro Arzilli:「反對將檢查當作運算子和處理常式鏈」,2018 年 8 月
-
Simon Howard:「Go 2 錯誤回應:每一個函式一個處理常式」,2018 年 8 月
-
Eli Bendersky:「關於 Go 2 錯誤處理提案的想法」,2018 年 9 月
-
Yoshiki Shibukawa:「每個處理常式都應具有回傳陳述式」,2018 年 9 月
反提案
用一般函式處理錯誤
-
Azamat Kalberdiev:「用直覺的程式碼處理每個錯誤」,2021 年 3 月
-
Andrew Phillips:「使用封閉函式而不是處理常式」,2018 年 10 月
-
Taihei Morikuni:「使用函式作為錯誤處理常式,新增語法糖以移除重複的 if 陳述式」,2018 年 9 月
-
Scott Pakin:「基於非區域回傳的 Go 2 錯誤處理」,2018 年 9 月
-
Greg Weber:「使用函式和錯誤回傳來處理錯誤?」,2018 年 9 月。原本連結的 gist。
-
Gigi Sayfan:「Go 2 錯誤處理回饋 + 替代方案」,2018 年 9 月
-
阮昆亮,「Go 2 的簡易錯誤處理」,2018 年 8 月
-
馬丁·若德,「回歸的回傳:Go 2 的錯誤處理」,2018 年 11 月
標籤化錯誤處理器
-
喬·拉普,「僅限本地的 throw-catch 錯誤處理」,2021 年 10 月
-
丹尼·普利慕斯,「使用現有的 go 標籤」,2018 年 12 月
-
布拉克·塞達爾,「err 處理器宣告 err 和 errHandler,較不具侵入性的標籤化錯誤處理」,2018 年 10 月
-
約翰·福斯特米爾,「標籤化錯誤處理」,2018 年 9 月
-
米凱爾·克魯索,「多個處理器,明確使用哪個回傳值」,2018 年 9 月
-
基烏拉·馬哥馬多夫,「Go2 草案錯誤處理的補充內容」,2018 年 9 月
-
李安·布雷克,「
#id/catch
錯誤模式」,2018 年 9 月 -
馬龍·車,「如何將檢查和處理分開?」,2018 年 8 月
內聯
-
派屈克·凱利,「在 Go 中處理的不只有錯誤」,2018 年 8 月
-
弗拉德·迪登科,「使用
grab| name()
進行錯誤處理」,2017 年 11 月 -
古德,「內聯風格錯誤處理(簡單且明確)」,2018 年 8 月
使用 defer
-
維多利亞·雷蒙,「強制「檢查」回傳錯誤,而不是允許自訂邏輯」,2018 年 8 月
-
Night-walker 和 daokoder,「擴充和重新利用 defer,而非引入新的語法」,2014 年 6 月
try/catch/finally 語法
-
馬修·德佛斯,「Go2 錯誤處理建議:範圍檢查/處理」,2018 年 8 月
-
Rust RFC,「基於特質的例外處理(其中
catch
類似於try
)」,2016 年 2 月 -
胡志峰,「[Go2ErrorHandling]Go 應支援例外處理常式」,2018 年 8 月
-
Jan Semmelink,「if-else-undo-done」,2018 年 8 月
-
Vladimir Utoplov,「處理 throws/throw 慣用語」,2018 年 9 月
-
鄂金奇,「try-with-resources」,2018 年 12 月
其他可能
-
Alex Hornbake,「refuse. 有條件回傳關鍵字」,2019 年 6 月
-
yaxinlx,「使用 ? 作為字尾,以從多值組中移除最後一個錯誤值」,2019 年 3 月
-
Plamen Stoev,「Go 2 區塊層級檢查」,2018 年 11 月
-
Peter Goetz,「在 Go 2 中思考關於錯誤處理的新方法」,2017 年 9 月
-
Fedir RYKHTIK,「使用驚嘆號進行 Go 2 錯誤處理」,2018 年 9 月
-
Einthusan Vigneswaran,「錯誤感知關鍵字 - return、defer、if、!=,以及強制將錯誤物件設定為最後一個參數」,2018 年 9 月
-
Andrew Phillips,「改善 Go 錯誤處理」,2017 年 10 月
未分類
請協助將其餘提案分類至下列。
-
Joe Lapp,「
on...return
進行錯誤處理」,2021 年 10 月 -
Andrew Gwozdziewycz,「檢查 Go 錯誤」,2019 年 6 月
-
DeedleFake,「針對 Go 2 設計草案的回饋」,2018 年 8 月
-
Loki Verloren,「Go 2 錯誤處理回饋以及我如何提高程式設計師效率與經驗的想法」,2018 年 9 月
-
Gima,「程序碼、分開的錯誤處理」,2018 年 6 月
-
Konstantin,「針對錯誤樹的錯誤處理」,討論 2019 年 5 月
加入您的回饋
請依下列格式排列所有條目。
- 您的姓名,「標題」,月年
為了方便查看新的回饋意見,請將您的最新提案新增至所置部分的最上方。
此內容為 Go Wiki 的一部分。