Почему Go в конечном итоге принял обработку исключений с помощью panic/recover, когда язык настолько идиоматичен и является сильным сторонником кодов ошибок? В каких сценариях дизайнеры Go envision не обрабатываются кодами ошибок и требуют паники/восстановления?
Я понимаю, что соглашение говорит limit panic/recover, но среда выполнения также ограничивает их тем, что они не могут использоваться как общий throw/catch в С++?