
Одна из самых старых и постоянных претензий к Go касается многословности обработки ошибок. Мы все хорошо (а кто-то, возможно, и болезненно) знакомы с этим шаблоном кода: if err != nil. Уже было довольно много разных пропозалов на тему обработки ошибок. Это и handle check, и try, и оператор "?" который как в Rust.
После долгих лет проб, трёх официальных предложений от команды Go и сотен (!) идей от сообщества - большинство из которых крутились вокруг одного и того же, но ни одна так и не получила серьёзной (не говоря уж о единодушной) поддержки - встал закономерный вопрос: что делать дальше? И стоит ли вообще что-то делать? Команда Go, считает что нет
Однако, новые функции стандартной библиотеки могут помочь сократить шаблонный код для обработки ошибок. Например, в некоторых случаях cmp.Or можно использовать для обработки сразу нескольких ошибок.