blob: 7562503cd391228af116e20490798b1848facf37 [file] [log] [blame] [view]
Liamde0e3042018-12-13 13:26:44 -08001# Feedback re Go 2 Error Handling Draft Design
Andrew Bonventrec0526c32018-08-28 09:55:58 -06002
Russ Cox96a7cda2019-06-19 13:17:42 -04003This page is meant to collect and organize feedback and discussion
4started with the Go 2 [error handling draft design](https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md).
Andrew Bonventrec0526c32018-08-28 09:55:58 -06005
6Please post feedback on your blog, Medium, GitHub Gists, mailing lists, Google Docs, etc. And then please link it here.
7
Greg Weber003ae112018-09-04 11:44:23 -07008Please help categorize the rest of the uncategorized proposals at the bottom.
Greg Weberc240ea22018-09-04 11:17:32 -07009
Russ Cox96a7cda2019-06-19 13:17:42 -040010**Update, June 19, 2019** Based on this feedback we have posted a [proposal for a try builtin](https://golang.org/design/32437-try-builtin), which produced significant feedback on #32427 ([threaded view here](https://swtch.com/try.html)).
11
12We've disabled comments on that issue until July 1 to give people time to experiment in their own code. We would very much like to see experience reports about using the general try approach in your own code, including trial conversions with [tryhard](https://github.com/griesemer/tryhard). Thanks!
13
14# Experience with the [“try proposal”](https://golang.org/design/32437-try-builtin)
15
16Add to this list:
17
18- TEMPLATE: Your Name, “[Title](URL)”, Month YYYY
19
20* * *
21
Liam94dc4cc2018-09-23 17:52:29 -070022# Requirements
23
24Discussions of the requirements for a new error handling method.
25
Liam64210d12018-12-13 00:23:48 -080026- Warren Stephens, "[Go 2 `handle` should provide line number, source filename, version](https://github.com/warrenstephens/Go2ErrorHandlingFeedback)", December 2018
27
Liam94dc4cc2018-09-23 17:52:29 -070028- Liam Breck, “[Requirements to Consider for Go 2 Error Handling](https://gist.github.com/networkimprov/961c9caa2631ad3b95413f7d44a2c98a)”, September 2018
29
Liame1fea7f2018-12-14 05:54:22 -080030 - jimmyfrasche, "[Don't special case error or nil](https://gist.github.com/jimmyfrasche/f2cd6aff16db5e46c577da44ec0cfa72)", September 2018
31
32- Matt Dee "[Error Handling Should Support Custom Error Types](https://gist.github.com/mattdee123/a04f95ef5639489668cafd9c3b675a8c)", August 2018
33
Liam94dc4cc2018-09-23 17:52:29 -070034- Ian Lance Taylor, “[Incomplete list of criteria](https://github.com/golang/go/issues/21161#issuecomment-389380686)” from GitHub proposal discussion, May 2018
Greg Weberc240ea22018-09-04 11:17:32 -070035
Liamd3208ce2018-10-23 14:27:25 -070036- Rob Pike (posted by @matjam) “[Simplicity is Complicated](https://www.youtube.com/watch?v=rFejpH_tAHM)”, December 2015
Liam4a207c82018-10-09 17:14:46 -070037
Liamde0e3042018-12-13 13:26:44 -080038
Greg Weberca446d72018-09-04 11:46:26 -070039# In support
40
41This includes supporting the existing chaining/stacking of handlers without changes.
Greg Weber003ae112018-09-04 11:44:23 -070042
Steve Manuel0b87ceb2018-10-24 20:05:55 -060043 - Tokyo Gophers, "[In support comments from Go 2 feedback event](https://docs.google.com/document/d/1yTDMP0E9hlJyLnKyr-6XL84RogiiwDnk0fMg9HDOKkc/edit#heading=h.f7ryl4573bu9)", October 2018
44
Greg Weber003ae112018-09-04 11:44:23 -070045 - Adam Bouhenguel "[In support of more declarative error handling](https://gist.github.com/ajbouh/716f8daba40199fe4d4d702704f3dfcc)", August 2018
46
47 - Daniel Theophanes, "[Go 2 Design: Error Handling Net Win](https://docs.google.com/document/d/e/2PACX-1vSq487dLylRHjgtKV42EbTKHW1aHZaaso3MZ4HOG1OS-s8suOnR9WZz6ahzH4Kufs2vwKKDMhoj1_I6/pub)", August 2018
48
Liamde0e3042018-12-13 13:26:44 -080049## Example code
Greg Weberfa0c36b2018-09-04 11:51:06 -070050
51Code changed to use the existing proposal.
52
53- Mateusz Czapliński, "[Converting a fragment of real code with error handling to Go 2 'design draft'](https://gist.github.com/akavel/62d90bdc43088574c638eb3b16301a92)", August 2018
54
Liamda33a7f2018-09-22 08:14:45 -070055 - Blake Mizerany, “[How best to account for partial writes when using check/handle?](https://gist.github.com/bmizerany/fcd0348bda96edce05a4fc7426e47751)”, August 2018
56
Greg Weber003ae112018-09-04 11:44:23 -070057# Against
58
Liam3dc10292018-09-08 14:04:29 -070059Critiques without counter-proposals
Greg Weberca446d72018-09-04 11:46:26 -070060
Liamb028c882019-03-04 00:07:08 -080061- Pasha Osipyants, “[Error handling mechanism using current go possibilities](https://godoc.org/github.com/pashaosipyants/errors)”, February 2019
62
Liamcaa246b2018-11-01 11:29:43 -070063- Anonymous, “[Go 2 Error Handling Non-Proposal](https://groups.google.com/d/topic/golang-nuts/1McP4_-oOpo/discussion)”, October 2018
64
Liama333cc22018-10-20 10:28:43 -070065- Stripe developers, “[Feedback on Go 2 draft designs](https://groups.google.com/d/msg/golang-nuts/3A_MpcNKg7k/DWiHBLArCAAJ)”, October 2018
66
Yoshi Yamaguchif907df22018-10-18 11:40:45 +090067- Tokyo Gophers, "[Against comments from Go 2 feedback event](https://docs.google.com/document/d/1yTDMP0E9hlJyLnKyr-6XL84RogiiwDnk0fMg9HDOKkc/edit#heading=h.fy8rnze9tll5)", Oct 2018
68
Liam3dc10292018-09-08 14:04:29 -070069- Liam Breck, “[Golang, How dare you handle my checks!](https://medium.com/@mnmnotmail/golang-how-dare-you-handle-my-checks-d5485f991289)”, September 2018
Greg Weberca446d72018-09-04 11:46:26 -070070
Nate Finch789f0ea2018-09-10 16:05:38 -040071- Nate Finch, "[Handle and Check, Let's Not](https://npf.io/2018/09/check-and-handle/)", September 2018
72
Liam9ef50db2018-12-13 00:04:37 -080073- Jozef Slezak, "[Use semicolons instead of new keywords: check+handle](https://gist.github.com/jozef-slezak/93a7d9d3d18d3fce3f8c3990c031f8d0)", September 2018
74
Andrew W. Phillipsb84ccd42018-09-13 20:21:24 +100075- Shannon Wynter "[Error Handling as it can already be done](https://gist.github.com/freman/0b372e46c72f6a27652538b9930ee851)", August 2018
76
Liamde0e3042018-12-13 13:26:44 -080077
Liamda606432019-01-28 11:29:30 -080078# Recurring themes
79
80Concepts that appear repeatedly among the suggestions below.
81
82- Invoke handler via assignment, e.g. `v, ? := f()`
83 references:
84 [1](https://gist.github.com/oktalz/f04f36a3c2f61af22c7a6e06095d18eb),
85 [2](https://gist.github.com/pborman/c69e79690d86dfc5c371f096be22930c),
Liam86381e62019-04-19 09:53:40 -070086 [3](http://blog.oldcloudguy.com/2019/04/18/error-handling-in-go-2-draft/),
87 [4](https://github.com/rockmenjack/go-2-proposals/blob/master/error_handling.md),
88 [5](https://gist.github.com/the-gigi/3c1acfc521d7991309eec140f40ccc2b),
89 [6](https://gist.github.com/8lall0/cb43e1fa4aae42bc709b138bda02284e),
90 [7](https://gist.github.com/dpremus/3b141157e7e47418ca6ccb1fc0210fc7),
91 [8](https://gist.github.com/bserdar/4c728f85ca30de25a433e84ad5a065a1),
92 [9](https://gist.github.com/mcluseau/1c20c3973fa3acb544d0505637be8d67),
93 [10](https://didenko.github.io/grab/grab_worth_it_0.1.1.html),
94 [11](https://github.com/gooid/gonotes/blob/master/inline_style_error_handle.md),
95 [12](https://gist.github.com/Kiura/4826db047e22b7720d378ac9ac642027),
96 [13](https://github.com/golang/go/issues/27519)
Liamda606432019-01-28 11:29:30 -080097
Liam8e0bfa12019-06-10 16:25:38 -070098- Invoke one of several handlers by name, e.g. `v := check f() ? name`
Liamda606432019-01-28 11:29:30 -080099 references:
100 [1](https://didenko.github.io/grab/grab_worth_it_0.1.1.html),
101 [2](https://gist.github.com/forstmeier/b6c6a6d2f6f2f72a81a076322959c959),
102 [3](https://gist.github.com/mcluseau/1c20c3973fa3acb544d0505637be8d67),
103 [4](https://gist.github.com/the-gigi/3c1acfc521d7991309eec140f40ccc2b),
104 [5](https://gist.github.com/PeterRK/4f59579c1162cdbc28086f6b5f7b4fa2),
105 [6](https://gist.github.com/marlonche/4e5d4e5aec0555958ec1f181991325f6),
106 [7](https://github.com/alnkapa/Go2ErrorHandlingFeedback/blob/master/README.md),
107 [8](https://medium.com/@phlatphrog/handling-more-than-just-errors-in-go-f97c5aa2eac4),
108 [9](https://gist.github.com/gregwebs/02479eeef8082cd199d9e6461cd1dab3),
109 [10](https://github.com/gooid/gonotes/blob/master/inline_style_error_handle.md),
110 [11](https://gist.github.com/spakin/86ea86ca48aefc78b672636914f4fc23),
111 [12](https://gist.github.com/morikuni/bbe4b2b0384507b42e6a79d4eca5fc61),
112 [13](http://devmethodologies.blogspot.com/2018/10/go-error-handling-using-closures.html),
113 [14](https://gist.github.com/bserdar/4c728f85ca30de25a433e84ad5a065a1),
114 [15](https://medium.com/@marode/the-return-of-the-return-278b8ae261ab),
115 [16](https://gist.github.com/dpremus/3b141157e7e47418ca6ccb1fc0210fc7),
116 [17](https://github.com/golang/go/issues/27519)
117
118
Liamf5c3dc22018-12-13 13:38:21 -0800119# Modest revisions
Liam14461202018-12-12 12:51:19 -0800120
Liam86381e62019-04-19 09:53:40 -0700121 - Dave Arnold, "[Move special check keyword to left-hand side of assignment](http://blog.oldcloudguy.com/2019/04/18/error-handling-in-go-2-draft/)", April 2019
122
rockmenjack9a841352018-12-28 15:57:28 +0800123 - Rockmen, "[Add handle and ? as syntax sugar maybe](https://github.com/rockmenjack/go-2-proposals/blob/master/error_handling.md)", December 2018
124
Liamb5c807d2018-12-12 13:05:47 -0800125 - Steve Manuel, "[Go 2 `handle` statement to optionally use a type switch](https://github.com/golang/go/issues/28344)", October 2018
126
127- Zlatko Bratkovic, "[In support with tiny change](https://gist.github.com/oktalz/f04f36a3c2f61af22c7a6e06095d18eb)", October 2018
128
129- DeedleFake, "[Possible Solution to `check` Awkwardness with Chained Method Calls](https://gist.github.com/DeedleFake/5e8e9e39203dff4839793981f79123aa)", September 2018
130
Liam59d56062018-12-13 12:47:36 -0800131- Yesuu Zhang, "[Pass the check and handle parameters, custom handle](https://github.com/yesuu/go-proposal/blob/master/go2errorhanding.md)", September 2018
132
Liam6040a1b2018-12-17 01:42:50 -0800133 - Viktor Kojouharov, "[Reducing the special casing around the new error design draft](https://gist.github.com/urandom/6519990ef9eb7547e888a5f2da7f1a93)", September 2018
134
Liam48cde832018-12-17 01:56:49 -0800135- Aleksei Pavliukov, “[Use a function as a handle parameter](https://github.com/a5i/go-proposal/blob/master/use%20a%20function%20as%20a%20handle%20parameter.md)”, September 2018
136
Liam573e3c12018-12-28 13:15:15 -0800137- Savino Pio Liguori, "[Feedback for Go2 error handling design](https://gist.github.com/8lall0/cb43e1fa4aae42bc709b138bda02284e)", August 2018
138
Liamb34ba0b2018-12-28 13:57:09 -0800139 - Jeffrey Koehler, "[In support of Handle Chaining; On Check](https://gist.github.com/deef0000dragon1/eb224ce4918d4ec3bdbaedf83a32aeb1)", August 2018
140
Liamcd0cb8c2018-12-24 18:38:49 -0800141 - Garrus, "[Another style of syntactic sugar on error handling](https://gist.github.com/garrus/5b1f73a7640726c92273700eabed9056)", August 2018
142
Liam274a4ca2018-12-12 15:44:59 -0800143 - Paul Borman, "[Arguments against the Go 2 error handling proposal](https://gist.github.com/pborman/c69e79690d86dfc5c371f096be22930c)", August 2018
144
Liamad74be72019-05-31 10:32:09 -0700145 - krhubert, "[Error default handler for tests](https://golang.org/issue/32361)", May 2019
Ian Lance Taylor9803d032019-05-31 09:57:50 -0700146
Liamf5c3dc22018-12-13 13:38:21 -0800147## Remove handler chaining
Liam267ace32018-12-13 00:33:04 -0800148
Markusbd3a5d42019-04-15 10:24:02 +0200149- Markus Heukelom, "[proposal: Improve error handing using `guard` and `must` keywords](https://github.com/golang/go/issues/31442)", April 2019
150
Liam267ace32018-12-13 00:33:04 -0800151 - Alessandro Arzilli, “[Against check as an operator and handler chains](https://gist.github.com/aarzilli/1a85db632edecc8159505e2c785882ed)”, August 2018
152
153- Simon Howard, “[Go 2 errors response: One Handler Per Function](https://gist.github.com/fragglet/df6c5471771d87b2ad597d2efc57cb3e)”, August 2018
154
155- Eli Bendersky, "[Thoughts on the Go 2 Error Handling proposal](https://gist.github.com/eliben/d0c872054864bfc1110ec761c3c53c47)", September 2018
156
157- Yoshiki Shibukawa, "[Every handles should have return statement](https://gist.github.com/shibukawa/42a9dee400c2f8577b4a763bcb1a5e5f)", September 2018
158
159
Greg Weber003ae112018-09-04 11:44:23 -0700160# Counter-proposals
161
Greg Weberc240ea22018-09-04 11:17:32 -0700162## Error handling with normal functions
morikuni2b3ff322018-09-29 13:18:59 +0900163
Andrew W. Phillips23167502018-10-02 16:10:42 +1000164- Andrew Phillips, “[Use closures rather than handlers](http://devmethodologies.blogspot.com/2018/10/go-error-handling-using-closures.html)”, October 2018
165
Liam6040a1b2018-12-17 01:42:50 -0800166 - Taihei Morikuni, "[Use functions as an error handler, Add syntactic sugar to remove duplicated if statement](https://gist.github.com/morikuni/bbe4b2b0384507b42e6a79d4eca5fc61)", September 2018
Greg Weberc240ea22018-09-04 11:17:32 -0700167
Scott Pakin90e78162018-09-13 10:02:23 -0600168- Scott Pakin, "[Go 2 error handling based on non-local returns](https://gist.github.com/spakin/86ea86ca48aefc78b672636914f4fc23)", September 2018
169
Greg Weberd5bf64d2018-09-10 04:57:01 -0700170- Greg Weber "[Error handling with functions and an error return?](https://github.com/golang/go/issues/27567)", September 2018. Originally linked [gist](https://gist.github.com/gregwebs/02479eeef8082cd199d9e6461cd1dab3).
Greg Weberc240ea22018-09-04 11:17:32 -0700171
172- Gigi Sayfan, “[Go 2 error handling feedback + alternative solution](https://gist.github.com/the-gigi/3c1acfc521d7991309eec140f40ccc2b)", September 2018
173
阮坤良354a4d22018-09-05 17:43:42 +0800174- Ruan Kunliang, "[Simple Error Handling for Go 2](https://gist.github.com/PeterRK/4f59579c1162cdbc28086f6b5f7b4fa2)", August 2018
Greg Weberc240ea22018-09-04 11:17:32 -0700175
Martin Rode87ecab52018-11-30 18:08:55 +0100176- Martin Rode, "[The return of the return, Error Handling for Go 2](https://medium.com/@marode/the-return-of-the-return-278b8ae261ab)", November 2018
Martin Rode72192a42018-11-30 18:08:12 +0100177
Greg Weberc240ea22018-09-04 11:17:32 -0700178## Labeled error handlers
179
Liam4cc437a2018-12-03 21:46:43 -0800180- Danijel Premus, "[Use existing go labels](https://gist.github.com/dpremus/3b141157e7e47418ca6ccb1fc0210fc7)", December 2018
181
Burak Serdar17c165f2018-10-22 12:53:06 -0600182- Burak Serdar, "[Handler for err declares both err and errHandler, less intrusive labeled error handling](https://gist.github.com/bserdar/4c728f85ca30de25a433e84ad5a065a1)", October 2018
183
Greg Weberc240ea22018-09-04 11:17:32 -0700184- John Forstmeier, "[Labeled error handling](https://gist.github.com/forstmeier/b6c6a6d2f6f2f72a81a076322959c959)", September 2018
185
186- Mikaël Cluseau, "[Multiple handlers, unambiguous on which return value is used](https://gist.github.com/mcluseau/1c20c3973fa3acb544d0505637be8d67)", September 2018
187
Liamd1efaf82018-12-21 22:27:06 -0800188- Kiura Magomadov, “[Addition to Go2 draft error handling](https://gist.github.com/Kiura/4826db047e22b7720d378ac9ac642027)", September 2018
189
Liam92969482018-09-08 14:12:14 -0700190- Liam Breck, “[The `#id/catch` Error Model](https://github.com/golang/go/issues/27519)”, September 2018
Greg Weberc240ea22018-09-04 11:17:32 -0700191
Liam4fb43ce2018-12-24 22:16:44 -0800192- Marlon Che, "[How about separating check and handle?](https://gist.github.com/marlonche/4e5d4e5aec0555958ec1f181991325f6)", August 2018
193
Greg Weberc240ea22018-09-04 11:17:32 -0700194## Inlining
195
Liam1af36682018-12-13 00:50:41 -0800196- Patrick Kelly, "[handling more than just errors in go](https://medium.com/@phlatphrog/handling-more-than-just-errors-in-go-f97c5aa2eac4)", August 2018
197
Greg Weberc240ea22018-09-04 11:17:32 -0700198- Vlad Didenko, “[Error Handling with `grab | name()`](https://didenko.github.io/grab/grab_worth_it_0.1.1.html)”, November 2017
199
Greg Weber5e3dea22018-09-04 11:38:31 -0700200- Gooid, “[Inline style error handle(simple unambiguous)](https://github.com/gooid/gonotes/blob/master/inline_style_error_handle.md)”, August 2018
201
Greg Weber5e3dea22018-09-04 11:38:31 -0700202## Use defer
203
204 - Victoria Raymond, “[Force 'check' to return error instead of allowing customized logic](https://gist.github.com/VictoriaRaymond/d70663a6ec6cdc59816b8806dccf7826)”, August 2018
205
206 - Night-walker and daokoder, "[Extend and repurpose defer instead of introducing new syntax](https://github.com/daokoder/dao/issues/191#issuecomment-44784919 )", June 2014
207
Greg Weber003ae112018-09-04 11:44:23 -0700208## try/catch/finally syntax
209
Mathieu Devosda32d7a2019-06-27 12:37:40 +0300210- Mathieu Devos, "[Go2 Error Handling Proposal: Scoped Check/Handle](https://gist.github.com/mathieudevos/2bdae70596aca711e50d1f2ff6d7b7cb)", August 2018
211
Liamc272bba2018-12-10 22:25:39 -0800212- Rust RFC, “[Trait-Based Exception Handling (wherein `catch` is akin to `try`)](https://github.com/rust-lang/rfcs/blob/master/text/0243-trait-based-exception-handling.md)”, February 2016
213
Liamda33a7f2018-09-22 08:14:45 -0700214- ZhiFeng Hu, "[[Go2ErrorHandling] Go should support Exception handler](https://www.netroby.com/view/3910)", August 2018
215
Greg Weber003ae112018-09-04 11:44:23 -0700216- Jan Semmelink, “[if-else-undo-done](https://gist.github.com/jansemmelink/235228a0fb56d0eeba8085ab5f8178f3)”, August 2018
Greg Weber5e3dea22018-09-04 11:38:31 -0700217
Vladimir9935ba02018-09-30 21:35:42 +0300218- Vladimir Utoplov, "[Handling throws/throw idiom](https://gist.github.com/trashgenerator/d58e05522d2f83709e1a601564b68fee)", September 2018
219
Gokan EKINCI3c865842018-12-06 17:15:08 +0100220- Gokan EKINCI, "[try-with-resources](https://gist.github.com/eau-de-la-seine/9e2e74d6369aef4a76aa50976e34de6d)", December 2018
Gokan EKINCI4380d4c2018-12-06 16:04:43 +0100221
Liamde0e3042018-12-13 13:26:44 -0800222## Other possibilities
Andrew Bonventrec0526c32018-08-28 09:55:58 -0600223
Alex Hornbakeb73661d2019-06-10 08:57:15 -0400224- Alex Hornbake, "[refuse. conditional return keyword](https://gist.github.com/alexhornbake/6a4c1c6a0f2a063da6dda1bf6ec0f5f3)", June 2019
225
Liamdd034252019-03-04 00:12:58 -0800226- yaxinlx, "[Use ? as suffix to remove the last error value from multi-value tuples](https://gist.github.com/yaxinlx/1e013fec0e3c2469f97074dbf5d2e2c0)", March 2019
227
Liam5f807752018-12-13 12:18:17 -0800228- Plamen Stoev, "[Go 2 block-level checks](https://gist.github.com/coquebg/afe44e410f883a313dc849da3e1ff34c)", November 2018
gimaaa5ad482018-10-10 15:00:55 +0300229
Liamf66a1592018-12-13 12:26:50 -0800230- Peter Goetz, "[Formalize and Enforce Error Handling](https://medium.com/@peter.gtz/thinking-about-new-ways-of-error-handling-in-go-2-e56d116952f1)", September 2017
231
Fedir RYKHTIKe8f7bb72018-09-12 19:25:34 +0200232 - Fedir RYKHTIK, "[Go 2 error handling with exclamation mark](https://gist.github.com/fedir/50158bc351b43378b829948290102470)", September 2018
233
Einthusan Vigneswarane594fd92018-08-31 19:10:01 -0400234 - Einthusan Vigneswaran, “[Error Aware Keywords - return, defer, if, != and forcing the error object to be the last argument](https://gist.github.com/einthusan/24e18f6359a31b3537815284cde0f6de)”, September 2018
Einthusan Vigneswarand1423562018-08-31 18:54:45 -0400235
Liam72eb83f2018-12-12 23:52:24 -0800236- Andrew Phillips, “[Improving Go Error Handling](http://devmethodologies.blogspot.com/2017/10/improving-go-error-handling.html)”, October 2017
237
Liamde0e3042018-12-13 13:26:44 -0800238
Liam5f807752018-12-13 12:18:17 -0800239# Uncategorized
K. Alex Millsd305d0a2018-09-02 10:30:01 -0500240
Greg Weberc240ea22018-09-04 11:17:32 -0700241Please help categorize the rest of the proposals here.
K. Alex Millsd305d0a2018-09-02 10:30:01 -0500242
Andrew Gwozdziewycz5430a3d2019-06-09 23:00:25 -0700243- Andrew Gwozdziewycz, "[Check for Go Errors](http://sigusr2.net/check-for-go-errors.html)", June 2019
244
DeedleFake73906fd2018-08-29 02:04:27 -0400245- DeedleFake, "[Feedback for Go 2 Design Drafts](https://deedlefake.com/2018/08/feedback-for-go-2-design-drafts/)", August 2018
Mateusz Czapliński91134a92018-08-29 12:36:50 +0000246
Liam5f807752018-12-13 12:18:17 -0800247- Loki Verloren, “[Go 2 error handling feedback and my thoughts on how to improve programmer's efficiency and experience](https://gist.github.com/l0k1verloren/8aec03b8c48fdb5d3dab3a77153ce162)”, September 2018
248
249- Gima, "[Procedural code, separate error handling](https://gitlab.com/snippets/1726097)", June 2018
250
Konstantinb834e392019-05-20 10:38:48 +0300251- Konstantin, "[error handling for error-tree](https://github.com/Konstantin8105/Go2ErrorTree)", [Discyssion](https://github.com/golang/go/issues/32099) May 2019
252
Liamf5c3dc22018-12-13 13:38:21 -0800253## Adding your feedback
K. Alex Mills2ade4522018-09-02 15:28:01 -0500254
255Please format all entries as below.
256
Liamf4d4e2c2018-08-31 01:32:52 -0700257- _Your Name_, “[_Title_](#URL)”, _month year_
258
DeedleFake786866a2018-09-21 18:41:56 -0400259To make it easier to see new feedback, please add your new proposal to the top of the section it is placed in.