Go Wiki: Go2ErrorHandlingFeedback
Go 2 エラー処理ドラフトデザインに関するフィードバック
このページは、Go 2 エラー処理ドラフトデザインから始まったフィードバックと議論を収集し、整理することを目的としています。
ブログ、Medium、GitHub Gists、メーリングリスト、Googleドキュメントなどにフィードバックを投稿してください。そして、ここにリンクしてください。
下部にある未分類の提案の残りを分類するのにご協力ください。
2019年6月19日更新 – このフィードバックに基づき、tryビルトインの提案を投稿しました。これにより、#32437(スレッド表示はこちら)で重要なフィードバックが得られました。
7月1日まで、人々が自分のコードで実験する時間を確保するために、その問題に関するコメントを無効にしました。 tryhardを使用した試験的な変換を含め、自分のコードでの一般的なtryアプローチの使用に関する経験レポートをぜひご覧ください。ありがとうございます!
「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でcheck-handleドラフト構文を使用する」、2021年5月
-
Mateusz Czapliński、「実際のエラー処理コードの断片をGo 2「設計ドラフト」に変換する」、2018年8月
-
Blake Mizerany、「check/handleを使用する場合、部分的な書き込みをどのように最適に考慮するか」、2018年8月
反対
対案なしの批判
-
Pasha Osipyants、「現在のGoの可能性を利用したエラー処理メカニズム」、2019年2月
-
匿名、「Go 2エラー処理の非提案」、2018年10月
-
Stripeの開発者、「Go 2ドラフト設計に関するフィードバック」、2018年10月
-
Tokyo Gophers、「Go 2フィードバックイベントからの反対コメント」、2018年10月
-
Liam Breck、「Golang、なぜ私のチェックを処理するんだ!」、2018年9月
-
Nate Finch、「Handle and 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
わずかな修正
-
Leidong Liu、「a、b、!checkError := Sub(…)」、2019年11月
-
Jin Feng、「[ハンドラーのない簡略化されたGo 2エラー処理ソリューション]、(https://gist.github.com/jfeng45/416d4ecb42a4df50bebf86ce1c41c668)」、2019年7月
-
Dave Arnold、「代入の左側に特別なチェックキーワードを移動する」、2019年4月
-
Rockmen、「構文シュガーとしてhandleと?を追加するかも」、2018年12月
-
Steve Manuel、「Go 2
handle
ステートメントで型スイッチをオプションで使用する」、2018年10月 -
Zlatko Bratkovic、「わずかな変更を加えた支持」、2018年10月
-
DeedleFake、「連鎖メソッド呼び出しによる
check
のぎこちなさに対する可能な解決策」、2018年9月 -
Yesuu Zhang、「チェックとハンドルパラメーター、カスタムハンドルを渡す」、2018年9月
-
Viktor Kojouharov、「新しいエラー設計ドラフトに関する特別なケース処理を削減する」、2018年9月
-
Aleksei Pavliukov、「関数をハンドルパラメーターとして使用する」、2018年9月
-
Savino Pio Liguori、「Go2エラー処理設計に関するフィードバック」、2018年8月
-
Jeffrey Koehler、「ハンドルチェーンのサポート。On Check」、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 のエラー応答: 関数ごとに 1 つのハンドラ”, 2018年8月
-
Eli Bendersky, “Go 2 エラー処理提案に関する考察”, 2018年9月
-
Yoshiki Shibukawa, “すべてのハンドラは return ステートメントを持つべき”, 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月
-
Ruan Kunliang, “Go 2 のためのシンプルなエラー処理”, 2018年8月
-
Martin Rode, “リターンの復活、Go 2 のためのエラー処理”, 2018年11月
ラベル付きエラーハンドラ
-
Joe Lapp, “ローカルのみの throw-catch エラー処理”, 2021年10月
-
Danijel Premus, “既存の Go ラベルを使用する”, 2018年12月
-
Burak Serdar, “err と errHandler の両方を宣言するエラーハンドラ、より控えめなラベル付きエラー処理”, 2018年10月
-
John Forstmeier, “ラベル付きエラー処理”, 2018年9月
-
Mikaël Cluseau, “複数のハンドラ、どの戻り値が使用されるかについて明確”, 2018年9月
-
Kiura Magomadov, “Go2 ドラフトエラー処理への追加", 2018年9月
-
Liam Breck, “
#id/catch
エラーモデル”, 2018年9月 -
Marlon Che, “チェックとハンドルを分離するのはどうでしょう?”, 2018年8月
インライン化
-
Patrick Kelly, “Go でエラー以外も処理する”, 2018年8月
-
Vlad Didenko, “
grab | name()
を使用したエラー処理”, 2017年11月 -
Gooid, “インラインスタイルエラーハンドル (シンプルで明確)”, 2018年8月
defer を使用する
-
Victoria Raymond, “カスタマイズされたロジックを許可するのではなく、'check' がエラーを返すことを強制する”, 2018年8月
-
Night-walker および daokoder, “新しい構文を導入するのではなく、defer を拡張して再利用する”, 2014年6月
try/catch/finally 構文
-
Mathieu Devos, “Go2 エラー処理提案: スコープ付きチェック/ハンドル”, 2018年8月
-
Rust RFC, “トレイトベースの例外処理 (
catch
はtry
に類似)”, 2016年2月 -
ZhiFeng Hu, “[Go2ErrorHandling] Go は例外ハンドラをサポートすべき”, 2018年8月
-
Jan Semmelink, “if-else-undo-done”, 2018年8月
-
Vladimir Utoplov, “throws/throw イディオムの処理”, 2018年9月
-
Gokan EKINCI, “try-with-resources”, 2018年12月
その他の可能性
-
Alex Hornbake, “refuse. 条件付き return キーワード”, 2019年6月
-
yaxinlx, “? を接尾辞として使用して、多値タプルから最後のエラー値を削除する”, 2019年3月
-
Plamen Stoev, “Go 2 ブロックレベルのチェック”, 2018年11月
-
Peter Goetz, “エラー処理の形式化と強制”, 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 の一部です。