# Go 2 Error Handling Feedback

This page is meant to collect and organize feedback about the Go 2 [error handling draft design](https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md).

Please post feedback on your blog, Medium, GitHub Gists, mailing lists, Google Docs, etc. And then please link it here.

As the amount of feedback grows, please feel free to organize this page by specific kind of feedback.

 - Alessandro Arzilli, “[Against check as an operator and handler chains](https://gist.github.com/aarzilli/1a85db632edecc8159505e2c785882ed)”, August 2018


 - Jeffrey Koehler, “[In support of Handle Chaining;  On Check](https://docs.google.com/document/d/1a_VoAMPgWFGWRn-_d4uQYRBrk_n5VdOO9W30gBOtHvk/edit?usp=sharing)”, August 2018
 - \<name\>, “[\<title\>](<link>)”, \<month\> \<year\>
 - \<name\>, “[\<title\>](<link>)”, \<month\> \<year\>
 - etc.